Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AdminServiceClient.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AdminServiceClient.cs	(revision 4466)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AdminServiceClient.cs	(revision 4481)
@@ -9,515 +9,669 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.OKB
-{
-    using System.Runtime.Serialization;
-    
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="OKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.DataType))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NamedOKBItem))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmClass))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Algorithm))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Platform))]
-    public partial class OKBItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private long IdField;
-        
-        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");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-    }
-    
-    [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.DataTransfer")]
-    public partial class DataType : HeuristicLab.Clients.OKB.OKBItem
-    {
-        
-        private string NameField;
-        
-        private long PlatformIdField;
-        
-        private string SqlNameField;
-        
-        [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()]
-        public long PlatformId
-        {
-            get
-            {
-                return this.PlatformIdField;
-            }
-            set
-            {
-                if ((this.PlatformIdField.Equals(value) != true))
-                {
-                    this.PlatformIdField = value;
-                    this.RaisePropertyChanged("PlatformId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string SqlName
-        {
-            get
-            {
-                return this.SqlNameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.SqlNameField, value) != true))
-                {
-                    this.SqlNameField = value;
-                    this.RaisePropertyChanged("SqlName");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="NamedOKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmClass))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Algorithm))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Platform))]
-    public partial class NamedOKBItem : HeuristicLab.Clients.OKB.OKBItem
-    {
-        
-        private string DescriptionField;
-        
-        private string NameField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        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()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-    }
-    
-    [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.DataTransfer")]
-    public partial class AlgorithmClass : HeuristicLab.Clients.OKB.NamedOKBItem
-    {
-    }
-    
-    [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.DataTransfer")]
-    public partial class Algorithm : HeuristicLab.Clients.OKB.NamedOKBItem
-    {
-        
-        private long AlgorithmClassIdField;
-        
-        private long PlatformIdField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long AlgorithmClassId
-        {
-            get
-            {
-                return this.AlgorithmClassIdField;
-            }
-            set
-            {
-                if ((this.AlgorithmClassIdField.Equals(value) != true))
-                {
-                    this.AlgorithmClassIdField = value;
-                    this.RaisePropertyChanged("AlgorithmClassId");
-                }
-            }
-        }
-        
-        [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.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.DataTransfer")]
-    public partial class Platform : HeuristicLab.Clients.OKB.NamedOKBItem
-    {
-    }
-    
-    [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.DataTransfer")]
-    public partial class AlgorithmData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private long AlgorithmIdField;
-        
-        private byte[] DataField;
-        
-        private long DataTypeIdField;
-        
-        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 byte[] Data
-        {
-            get
-            {
-                return this.DataField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DataField, value) != true))
-                {
-                    this.DataField = value;
-                    this.RaisePropertyChanged("Data");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long DataTypeId
-        {
-            get
-            {
-                return this.DataTypeIdField;
-            }
-            set
-            {
-                if ((this.DataTypeIdField.Equals(value) != true))
-                {
-                    this.DataTypeIdField = value;
-                    this.RaisePropertyChanged("DataTypeId");
-                }
-            }
-        }
-        
-        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/GetPlatform", ReplyAction="http://tempuri.org/IAdminService/GetPlatformResponse")]
-        HeuristicLab.Clients.OKB.Platform GetPlatform(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetPlatforms", ReplyAction="http://tempuri.org/IAdminService/GetPlatformsResponse")]
-        HeuristicLab.Clients.OKB.Platform[] GetPlatforms();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StorePlatform", ReplyAction="http://tempuri.org/IAdminService/StorePlatformResponse")]
-        void StorePlatform(HeuristicLab.Clients.OKB.Platform dto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeletePlatform", ReplyAction="http://tempuri.org/IAdminService/DeletePlatformResponse")]
-        void DeletePlatform(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithmClass", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmClassResponse")]
-        HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
-        HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StoreAlgorithmClass", ReplyAction="http://tempuri.org/IAdminService/StoreAlgorithmClassResponse")]
-        void StoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction="http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
-        void DeleteAlgorithmClass(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithm", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmResponse")]
-        HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
-        HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StoreAlgorithm", ReplyAction="http://tempuri.org/IAdminService/StoreAlgorithmResponse")]
-        void StoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction="http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
-        void DeleteAlgorithm(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithmUsers", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmUsersResponse")]
-        System.Guid[] GetAlgorithmUsers(long algorithmId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StoreAlgorithmUsers", ReplyAction="http://tempuri.org/IAdminService/StoreAlgorithmUsersResponse")]
-        void StoreAlgorithmUsers(long algorithmId, System.Guid[] users);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetAlgorithmData", ReplyAction="http://tempuri.org/IAdminService/GetAlgorithmDataResponse")]
-        HeuristicLab.Clients.OKB.AlgorithmData GetAlgorithmData(long algorithmId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StoreAlgorithmData", ReplyAction="http://tempuri.org/IAdminService/StoreAlgorithmDataResponse")]
-        void StoreAlgorithmData(HeuristicLab.Clients.OKB.AlgorithmData dto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetDataType", ReplyAction="http://tempuri.org/IAdminService/GetDataTypeResponse")]
-        HeuristicLab.Clients.OKB.DataType GetDataType(long id);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/GetDataTypes", ReplyAction="http://tempuri.org/IAdminService/GetDataTypesResponse")]
-        HeuristicLab.Clients.OKB.DataType[] GetDataTypes();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/StoreDataType", ReplyAction="http://tempuri.org/IAdminService/StoreDataTypeResponse")]
-        void StoreDataType(HeuristicLab.Clients.OKB.DataType dto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteDataType", ReplyAction="http://tempuri.org/IAdminService/DeleteDataTypeResponse")]
-        void DeleteDataType(long id);
-    }
-    
-    [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 AdminServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.IAdminService>, HeuristicLab.Clients.OKB.IAdminService
-    {
-        
-        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 HeuristicLab.Clients.OKB.Platform GetPlatform(long id)
-        {
-            return base.Channel.GetPlatform(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.Platform[] GetPlatforms()
-        {
-            return base.Channel.GetPlatforms();
-        }
-        
-        public void StorePlatform(HeuristicLab.Clients.OKB.Platform dto)
-        {
-            base.Channel.StorePlatform(dto);
-        }
-        
-        public void DeletePlatform(long id)
-        {
-            base.Channel.DeletePlatform(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long id)
-        {
-            return base.Channel.GetAlgorithmClass(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses()
-        {
-            return base.Channel.GetAlgorithmClasses();
-        }
-        
-        public void StoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto)
-        {
-            base.Channel.StoreAlgorithmClass(dto);
-        }
-        
-        public void DeleteAlgorithmClass(long id)
-        {
-            base.Channel.DeleteAlgorithmClass(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long id)
-        {
-            return base.Channel.GetAlgorithm(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms()
-        {
-            return base.Channel.GetAlgorithms();
-        }
-        
-        public void StoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto)
-        {
-            base.Channel.StoreAlgorithm(dto);
-        }
-        
-        public void DeleteAlgorithm(long id)
-        {
-            base.Channel.DeleteAlgorithm(id);
-        }
-        
-        public System.Guid[] GetAlgorithmUsers(long algorithmId)
-        {
-            return base.Channel.GetAlgorithmUsers(algorithmId);
-        }
-        
-        public void StoreAlgorithmUsers(long algorithmId, System.Guid[] users)
-        {
-            base.Channel.StoreAlgorithmUsers(algorithmId, users);
-        }
-        
-        public HeuristicLab.Clients.OKB.AlgorithmData GetAlgorithmData(long algorithmId)
-        {
-            return base.Channel.GetAlgorithmData(algorithmId);
-        }
-        
-        public void StoreAlgorithmData(HeuristicLab.Clients.OKB.AlgorithmData dto)
-        {
-            base.Channel.StoreAlgorithmData(dto);
-        }
-        
-        public HeuristicLab.Clients.OKB.DataType GetDataType(long id)
-        {
-            return base.Channel.GetDataType(id);
-        }
-        
-        public HeuristicLab.Clients.OKB.DataType[] GetDataTypes()
-        {
-            return base.Channel.GetDataTypes();
-        }
-        
-        public void StoreDataType(HeuristicLab.Clients.OKB.DataType dto)
-        {
-            base.Channel.StoreDataType(dto);
-        }
-        
-        public void DeleteDataType(long id)
-        {
-            base.Channel.DeleteDataType(id);
-        }
-    }
+namespace HeuristicLab.Clients.OKB {
+
+
+  [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.DataTransfer")]
+  public partial class ProblemClass : HeuristicLab.Clients.OKB.NamedOKBItem {
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "OKBItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.DataType))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NamedOKBItem))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Problem))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Platform))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmClass))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Algorithm))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemClass))]
+  public partial class OKBItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    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");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+  }
+
+  [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.DataTransfer")]
+  public partial class DataType : HeuristicLab.Clients.OKB.OKBItem {
+
+    private string NameField;
+
+    private long PlatformIdField;
+
+    private string SqlNameField;
+
+    [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()]
+    public long PlatformId {
+      get {
+        return this.PlatformIdField;
+      }
+      set {
+        if ((this.PlatformIdField.Equals(value) != true)) {
+          this.PlatformIdField = value;
+          this.RaisePropertyChanged("PlatformId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string SqlName {
+      get {
+        return this.SqlNameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.SqlNameField, value) != true)) {
+          this.SqlNameField = value;
+          this.RaisePropertyChanged("SqlName");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "NamedOKBItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Problem))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Platform))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmClass))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Algorithm))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemClass))]
+  public partial class NamedOKBItem : HeuristicLab.Clients.OKB.OKBItem {
+
+    private string DescriptionField;
+
+    private string NameField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    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()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+  }
+
+  [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.DataTransfer")]
+  public partial class Problem : HeuristicLab.Clients.OKB.NamedOKBItem {
+
+    private long PlatformIdField;
+
+    private long ProblemClassIdField;
+
+    [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()]
+    public long ProblemClassId {
+      get {
+        return this.ProblemClassIdField;
+      }
+      set {
+        if ((this.ProblemClassIdField.Equals(value) != true)) {
+          this.ProblemClassIdField = value;
+          this.RaisePropertyChanged("ProblemClassId");
+        }
+      }
+    }
+  }
+
+  [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.DataTransfer")]
+  public partial class Platform : HeuristicLab.Clients.OKB.NamedOKBItem {
+  }
+
+  [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.DataTransfer")]
+  public partial class AlgorithmClass : HeuristicLab.Clients.OKB.NamedOKBItem {
+  }
+
+  [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.DataTransfer")]
+  public partial class Algorithm : HeuristicLab.Clients.OKB.NamedOKBItem {
+
+    private long AlgorithmClassIdField;
+
+    private long PlatformIdField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmClassId {
+      get {
+        return this.AlgorithmClassIdField;
+      }
+      set {
+        if ((this.AlgorithmClassIdField.Equals(value) != true)) {
+          this.AlgorithmClassIdField = value;
+          this.RaisePropertyChanged("AlgorithmClassId");
+        }
+      }
+    }
+
+    [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.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.DataTransfer")]
+  public partial class ProblemData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private byte[] DataField;
+
+    private long DataTypeIdField;
+
+    private long ProblemIdField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public byte[] Data {
+      get {
+        return this.DataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataField, value) != true)) {
+          this.DataField = value;
+          this.RaisePropertyChanged("Data");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    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.DataTransfer")]
+  public partial class AlgorithmData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmIdField;
+
+    private byte[] DataField;
+
+    private long DataTypeIdField;
+
+    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 byte[] Data {
+      get {
+        return this.DataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataField, value) != true)) {
+          this.DataField = value;
+          this.RaisePropertyChanged("Data");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    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/GetProblemClasses", ReplyAction = "http://tempuri.org/IAdminService/GetProblemClassesResponse")]
+    HeuristicLab.Clients.OKB.ProblemClass[] GetProblemClasses();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddProblemClass", ReplyAction = "http://tempuri.org/IAdminService/AddProblemClassResponse")]
+    long AddProblemClass(HeuristicLab.Clients.OKB.ProblemClass dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateProblemClass", ReplyAction = "http://tempuri.org/IAdminService/UpdateProblemClassResponse")]
+    void UpdateProblemClass(HeuristicLab.Clients.OKB.ProblemClass dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteProblemClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteProblemClassResponse")]
+    void DeleteProblemClass(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetProblem", ReplyAction = "http://tempuri.org/IAdminService/GetProblemResponse")]
+    HeuristicLab.Clients.OKB.Problem GetProblem(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetProblems", ReplyAction = "http://tempuri.org/IAdminService/GetProblemsResponse")]
+    HeuristicLab.Clients.OKB.Problem[] GetProblems();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddProblem", ReplyAction = "http://tempuri.org/IAdminService/AddProblemResponse")]
+    long AddProblem(HeuristicLab.Clients.OKB.Problem dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateProblem", ReplyAction = "http://tempuri.org/IAdminService/UpdateProblemResponse")]
+    void UpdateProblem(HeuristicLab.Clients.OKB.Problem dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteProblem", ReplyAction = "http://tempuri.org/IAdminService/DeleteProblemResponse")]
+    void DeleteProblem(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetProblemUsers", ReplyAction = "http://tempuri.org/IAdminService/GetProblemUsersResponse")]
+    System.Guid[] GetProblemUsers(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateProblemUsers", ReplyAction = "http://tempuri.org/IAdminService/UpdateProblemUsersResponse")]
+    void UpdateProblemUsers(long problemId, System.Guid[] users);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetProblemData", ReplyAction = "http://tempuri.org/IAdminService/GetProblemDataResponse")]
+    HeuristicLab.Clients.OKB.ProblemData GetProblemData(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateProblemData", ReplyAction = "http://tempuri.org/IAdminService/UpdateProblemDataResponse")]
+    void UpdateProblemData(HeuristicLab.Clients.OKB.ProblemData dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetPlatform", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformResponse")]
+    HeuristicLab.Clients.OKB.Platform GetPlatform(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformsResponse")]
+    HeuristicLab.Clients.OKB.Platform[] GetPlatforms();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddPlatform", ReplyAction = "http://tempuri.org/IAdminService/AddPlatformResponse")]
+    long AddPlatform(HeuristicLab.Clients.OKB.Platform dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdatePlatform", ReplyAction = "http://tempuri.org/IAdminService/UpdatePlatformResponse")]
+    void UpdatePlatform(HeuristicLab.Clients.OKB.Platform dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeletePlatform", ReplyAction = "http://tempuri.org/IAdminService/DeletePlatformResponse")]
+    void DeletePlatform(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetDataType", ReplyAction = "http://tempuri.org/IAdminService/GetDataTypeResponse")]
+    HeuristicLab.Clients.OKB.DataType GetDataType(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetDataTypes", ReplyAction = "http://tempuri.org/IAdminService/GetDataTypesResponse")]
+    HeuristicLab.Clients.OKB.DataType[] GetDataTypes();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddDataType", ReplyAction = "http://tempuri.org/IAdminService/AddDataTypeResponse")]
+    long AddDataType(HeuristicLab.Clients.OKB.DataType dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateDataType", ReplyAction = "http://tempuri.org/IAdminService/UpdateDataTypeResponse")]
+    void UpdateDataType(HeuristicLab.Clients.OKB.DataType dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteDataType", ReplyAction = "http://tempuri.org/IAdminService/DeleteDataTypeResponse")]
+    void DeleteDataType(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassResponse")]
+    HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
+    HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmClassResponse")]
+    long AddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmClassResponse")]
+    void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
+    void DeleteAlgorithmClass(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmResponse")]
+    HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
+    HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms();
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmResponse")]
+    long AddAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmResponse")]
+    void UpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
+    void DeleteAlgorithm(long id);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmUsers", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmUsersResponse")]
+    System.Guid[] GetAlgorithmUsers(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithmUsers", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmUsersResponse")]
+    void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmData", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmDataResponse")]
+    HeuristicLab.Clients.OKB.AlgorithmData GetAlgorithmData(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithmData", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmDataResponse")]
+    void UpdateAlgorithmData(HeuristicLab.Clients.OKB.AlgorithmData dto);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetProblemClass", ReplyAction = "http://tempuri.org/IAdminService/GetProblemClassResponse")]
+    HeuristicLab.Clients.OKB.ProblemClass GetProblemClass(long id);
+  }
+
+  [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 AdminServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.IAdminService>, HeuristicLab.Clients.OKB.IAdminService {
+
+    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 HeuristicLab.Clients.OKB.ProblemClass[] GetProblemClasses() {
+      return base.Channel.GetProblemClasses();
+    }
+
+    public long AddProblemClass(HeuristicLab.Clients.OKB.ProblemClass dto) {
+      return base.Channel.AddProblemClass(dto);
+    }
+
+    public void UpdateProblemClass(HeuristicLab.Clients.OKB.ProblemClass dto) {
+      base.Channel.UpdateProblemClass(dto);
+    }
+
+    public void DeleteProblemClass(long id) {
+      base.Channel.DeleteProblemClass(id);
+    }
+
+    public HeuristicLab.Clients.OKB.Problem GetProblem(long id) {
+      return base.Channel.GetProblem(id);
+    }
+
+    public HeuristicLab.Clients.OKB.Problem[] GetProblems() {
+      return base.Channel.GetProblems();
+    }
+
+    public long AddProblem(HeuristicLab.Clients.OKB.Problem dto) {
+      return base.Channel.AddProblem(dto);
+    }
+
+    public void UpdateProblem(HeuristicLab.Clients.OKB.Problem dto) {
+      base.Channel.UpdateProblem(dto);
+    }
+
+    public void DeleteProblem(long id) {
+      base.Channel.DeleteProblem(id);
+    }
+
+    public System.Guid[] GetProblemUsers(long problemId) {
+      return base.Channel.GetProblemUsers(problemId);
+    }
+
+    public void UpdateProblemUsers(long problemId, System.Guid[] users) {
+      base.Channel.UpdateProblemUsers(problemId, users);
+    }
+
+    public HeuristicLab.Clients.OKB.ProblemData GetProblemData(long problemId) {
+      return base.Channel.GetProblemData(problemId);
+    }
+
+    public void UpdateProblemData(HeuristicLab.Clients.OKB.ProblemData dto) {
+      base.Channel.UpdateProblemData(dto);
+    }
+
+    public HeuristicLab.Clients.OKB.Platform GetPlatform(long id) {
+      return base.Channel.GetPlatform(id);
+    }
+
+    public HeuristicLab.Clients.OKB.Platform[] GetPlatforms() {
+      return base.Channel.GetPlatforms();
+    }
+
+    public long AddPlatform(HeuristicLab.Clients.OKB.Platform dto) {
+      return base.Channel.AddPlatform(dto);
+    }
+
+    public void UpdatePlatform(HeuristicLab.Clients.OKB.Platform dto) {
+      base.Channel.UpdatePlatform(dto);
+    }
+
+    public void DeletePlatform(long id) {
+      base.Channel.DeletePlatform(id);
+    }
+
+    public HeuristicLab.Clients.OKB.DataType GetDataType(long id) {
+      return base.Channel.GetDataType(id);
+    }
+
+    public HeuristicLab.Clients.OKB.DataType[] GetDataTypes() {
+      return base.Channel.GetDataTypes();
+    }
+
+    public long AddDataType(HeuristicLab.Clients.OKB.DataType dto) {
+      return base.Channel.AddDataType(dto);
+    }
+
+    public void UpdateDataType(HeuristicLab.Clients.OKB.DataType dto) {
+      base.Channel.UpdateDataType(dto);
+    }
+
+    public void DeleteDataType(long id) {
+      base.Channel.DeleteDataType(id);
+    }
+
+    public HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long id) {
+      return base.Channel.GetAlgorithmClass(id);
+    }
+
+    public HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses() {
+      return base.Channel.GetAlgorithmClasses();
+    }
+
+    public long AddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto) {
+      return base.Channel.AddAlgorithmClass(dto);
+    }
+
+    public void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass dto) {
+      base.Channel.UpdateAlgorithmClass(dto);
+    }
+
+    public void DeleteAlgorithmClass(long id) {
+      base.Channel.DeleteAlgorithmClass(id);
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long id) {
+      return base.Channel.GetAlgorithm(id);
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms() {
+      return base.Channel.GetAlgorithms();
+    }
+
+    public long AddAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto) {
+      return base.Channel.AddAlgorithm(dto);
+    }
+
+    public void UpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm dto) {
+      base.Channel.UpdateAlgorithm(dto);
+    }
+
+    public void DeleteAlgorithm(long id) {
+      base.Channel.DeleteAlgorithm(id);
+    }
+
+    public System.Guid[] GetAlgorithmUsers(long algorithmId) {
+      return base.Channel.GetAlgorithmUsers(algorithmId);
+    }
+
+    public void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users) {
+      base.Channel.UpdateAlgorithmUsers(algorithmId, users);
+    }
+
+    public HeuristicLab.Clients.OKB.AlgorithmData GetAlgorithmData(long algorithmId) {
+      return base.Channel.GetAlgorithmData(algorithmId);
+    }
+
+    public void UpdateAlgorithmData(HeuristicLab.Clients.OKB.AlgorithmData dto) {
+      base.Channel.UpdateAlgorithmData(dto);
+    }
+
+    public HeuristicLab.Clients.OKB.ProblemClass GetProblemClass(long id) {
+      return base.Channel.GetProblemClass(id);
+    }
+  }
 }
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmData.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmData.cs	(revision 4481)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmData.cs	(revision 4481)
@@ -0,0 +1,26 @@
+﻿#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.Common;
+
+namespace HeuristicLab.Clients.OKB {
+  public partial class AlgorithmData : IContent { }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Problem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Problem.cs	(revision 4481)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Problem.cs	(revision 4481)
@@ -0,0 +1,31 @@
+﻿#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.Core;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("Problem", "An OKB problem.")]
+  public partial class Problem {
+    public Problem() {
+      Name = "New Problem";
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ProblemClass.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ProblemClass.cs	(revision 4481)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ProblemClass.cs	(revision 4481)
@@ -0,0 +1,31 @@
+﻿#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.Core;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("ProblemClass", "An OKB problem class.")]
+  public partial class ProblemClass {
+    public ProblemClass() {
+      Name = "New Problem Class";
+    }
+  }
+}
