Index: branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ConcurrentTaskDownloader.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ConcurrentTaskDownloader.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ConcurrentTaskDownloader.cs	(revision 9202)
@@ -68,5 +68,9 @@
 
     private Task DownloadTask(object taskId) {
-      return HiveServiceLocator.Instance.CallHiveService(s => s.GetTask((Guid)taskId));
+      Task t = null;
+      HiveClient.TryAndRepeat(() => {
+        t = HiveServiceLocator.Instance.CallHiveService(s => s.GetTask((Guid)taskId));
+      }, Settings.Default.MaxRepeatServiceCalls, "Failed to download task.");
+      return t;
     }
 
@@ -77,8 +81,10 @@
     protected Tuple<Task, TaskData> DownloadTaskData(Task task) {
       downloadSemaphore.WaitOne();
-      TaskData result;
+      TaskData result = null;
       try {
         if (abort) return null;
-        result = HiveServiceLocator.Instance.CallHiveService(s => s.GetTaskData(task.Id));
+        HiveClient.TryAndRepeat(() => {
+          result = HiveServiceLocator.Instance.CallHiveService(s => s.GetTaskData(task.Id));
+        }, Settings.Default.MaxRepeatServiceCalls, "Failed to download task data.");
       }
       finally {
Index: branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/HiveClient.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/HiveClient.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/HiveClient.cs	(revision 9202)
@@ -435,5 +435,5 @@
         // fetch all task objects to create the full tree of tree of HiveTask objects
         refreshableJob.Progress.Status = "Downloading list of tasks...";
-        allTasks = HiveServiceLocator.Instance.CallHiveService(s => s.GetLightweightJobTasks(hiveExperiment.Id));
+        allTasks = HiveServiceLocator.Instance.CallHiveService(s => s.GetLightweightJobTasksWithoutStateLog(hiveExperiment.Id));
         totalJobCount = allTasks.Count();
 
Index: branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ServiceClients/HiveServiceClient.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ServiceClients/HiveServiceClient.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Clients.Hive/3.3/ServiceClients/HiveServiceClient.cs	(revision 9202)
@@ -2,5 +2,5 @@
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.586
+//     Runtime Version:4.0.30319.18034
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
@@ -9,2137 +9,2956 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.Hive {
-
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Slave", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Slave : HeuristicLab.Clients.Hive.Resource {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<int> CoresField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.CpuArchitecture CpuArchitectureField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<int> CpuSpeedField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private double CpuUtilizationField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<int> FreeCoresField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<int> FreeMemoryField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool IsAllowedToCalculateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<bool> IsDisposableField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.DateTime> LastHeartbeatField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<int> MemoryField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string OperatingSystemField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.SlaveState SlaveStateField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<int> Cores {
-      get {
-        return this.CoresField;
-      }
-      set {
-        if ((this.CoresField.Equals(value) != true)) {
-          this.CoresField = value;
-          this.RaisePropertyChanged("Cores");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.CpuArchitecture CpuArchitecture {
-      get {
-        return this.CpuArchitectureField;
-      }
-      set {
-        if ((this.CpuArchitectureField.Equals(value) != true)) {
-          this.CpuArchitectureField = value;
-          this.RaisePropertyChanged("CpuArchitecture");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<int> CpuSpeed {
-      get {
-        return this.CpuSpeedField;
-      }
-      set {
-        if ((this.CpuSpeedField.Equals(value) != true)) {
-          this.CpuSpeedField = value;
-          this.RaisePropertyChanged("CpuSpeed");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public double CpuUtilization {
-      get {
-        return this.CpuUtilizationField;
-      }
-      set {
-        if ((this.CpuUtilizationField.Equals(value) != true)) {
-          this.CpuUtilizationField = value;
-          this.RaisePropertyChanged("CpuUtilization");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<int> FreeCores {
-      get {
-        return this.FreeCoresField;
-      }
-      set {
-        if ((this.FreeCoresField.Equals(value) != true)) {
-          this.FreeCoresField = value;
-          this.RaisePropertyChanged("FreeCores");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<int> FreeMemory {
-      get {
-        return this.FreeMemoryField;
-      }
-      set {
-        if ((this.FreeMemoryField.Equals(value) != true)) {
-          this.FreeMemoryField = value;
-          this.RaisePropertyChanged("FreeMemory");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool IsAllowedToCalculate {
-      get {
-        return this.IsAllowedToCalculateField;
-      }
-      set {
-        if ((this.IsAllowedToCalculateField.Equals(value) != true)) {
-          this.IsAllowedToCalculateField = value;
-          this.RaisePropertyChanged("IsAllowedToCalculate");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<bool> IsDisposable {
-      get {
-        return this.IsDisposableField;
-      }
-      set {
-        if ((this.IsDisposableField.Equals(value) != true)) {
-          this.IsDisposableField = value;
-          this.RaisePropertyChanged("IsDisposable");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.DateTime> LastHeartbeat {
-      get {
-        return this.LastHeartbeatField;
-      }
-      set {
-        if ((this.LastHeartbeatField.Equals(value) != true)) {
-          this.LastHeartbeatField = value;
-          this.RaisePropertyChanged("LastHeartbeat");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<int> Memory {
-      get {
-        return this.MemoryField;
-      }
-      set {
-        if ((this.MemoryField.Equals(value) != true)) {
-          this.MemoryField = value;
-          this.RaisePropertyChanged("Memory");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string OperatingSystem {
-      get {
-        return this.OperatingSystemField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.OperatingSystemField, value) != true)) {
-          this.OperatingSystemField = value;
-          this.RaisePropertyChanged("OperatingSystem");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.SlaveState SlaveState {
-      get {
-        return this.SlaveStateField;
-      }
-      set {
-        if ((this.SlaveStateField.Equals(value) != true)) {
-          this.SlaveStateField = value;
-          this.RaisePropertyChanged("SlaveState");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "HiveItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightTask))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.StateLog))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Task))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Downtime))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.JobPermission))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.PluginData))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.ResourcePermission))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.NamedHiveItem))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Plugin))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Resource))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
-  public partial class HiveItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    [System.NonSerializedAttribute()]
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid IdField;
-
-    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");
-        }
-      }
-    }
-
-    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 = "LightweightTask", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Task))]
-  public partial class LightweightTask : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<HeuristicLab.Clients.Hive.Command> CommandField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.TimeSpan ExecutionTimeField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime LastTaskDataUpdateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.Guid> ParentTaskIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.TaskState StateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Collections.Generic.List<HeuristicLab.Clients.Hive.StateLog> StateLogField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<HeuristicLab.Clients.Hive.Command> Command {
-      get {
-        return this.CommandField;
-      }
-      set {
-        if ((this.CommandField.Equals(value) != true)) {
-          this.CommandField = value;
-          this.RaisePropertyChanged("Command");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.TimeSpan ExecutionTime {
-      get {
-        return this.ExecutionTimeField;
-      }
-      set {
-        if ((this.ExecutionTimeField.Equals(value) != true)) {
-          this.ExecutionTimeField = value;
-          this.RaisePropertyChanged("ExecutionTime");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime LastTaskDataUpdate {
-      get {
-        return this.LastTaskDataUpdateField;
-      }
-      set {
-        if ((this.LastTaskDataUpdateField.Equals(value) != true)) {
-          this.LastTaskDataUpdateField = value;
-          this.RaisePropertyChanged("LastTaskDataUpdate");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.Guid> ParentTaskId {
-      get {
-        return this.ParentTaskIdField;
-      }
-      set {
-        if ((this.ParentTaskIdField.Equals(value) != true)) {
-          this.ParentTaskIdField = value;
-          this.RaisePropertyChanged("ParentTaskId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.TaskState State {
-      get {
-        return this.StateField;
-      }
-      set {
-        if ((this.StateField.Equals(value) != true)) {
-          this.StateField = value;
-          this.RaisePropertyChanged("State");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.StateLog> StateLog {
-      get {
-        return this.StateLogField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.StateLogField, value) != true)) {
-          this.StateLogField = value;
-          this.RaisePropertyChanged("StateLog");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "StateLog", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class StateLog : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime DateTimeField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string ExceptionField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.Guid> SlaveIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.TaskState StateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid TaskIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.Guid> UserIdField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime DateTime {
-      get {
-        return this.DateTimeField;
-      }
-      set {
-        if ((this.DateTimeField.Equals(value) != true)) {
-          this.DateTimeField = value;
-          this.RaisePropertyChanged("DateTime");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Exception {
-      get {
-        return this.ExceptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExceptionField, value) != true)) {
-          this.ExceptionField = value;
-          this.RaisePropertyChanged("Exception");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.Guid> SlaveId {
-      get {
-        return this.SlaveIdField;
-      }
-      set {
-        if ((this.SlaveIdField.Equals(value) != true)) {
-          this.SlaveIdField = value;
-          this.RaisePropertyChanged("SlaveId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.TaskState State {
-      get {
-        return this.StateField;
-      }
-      set {
-        if ((this.StateField.Equals(value) != true)) {
-          this.StateField = value;
-          this.RaisePropertyChanged("State");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid TaskId {
-      get {
-        return this.TaskIdField;
-      }
-      set {
-        if ((this.TaskIdField.Equals(value) != true)) {
-          this.TaskIdField = value;
-          this.RaisePropertyChanged("TaskId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.Guid> UserId {
-      get {
-        return this.UserIdField;
-      }
-      set {
-        if ((this.UserIdField.Equals(value) != true)) {
-          this.UserIdField = value;
-          this.RaisePropertyChanged("UserId");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Task", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Task : HeuristicLab.Clients.Hive.LightweightTask {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int CoresNeededField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool FinishWhenChildJobsFinishedField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool IsParentTaskField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool IsPrivilegedField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid JobIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.DateTime> LastHeartbeatField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int MemoryNeededField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Collections.Generic.List<System.Guid> PluginsNeededIdsField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int PriorityField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int CoresNeeded {
-      get {
-        return this.CoresNeededField;
-      }
-      set {
-        if ((this.CoresNeededField.Equals(value) != true)) {
-          this.CoresNeededField = value;
-          this.RaisePropertyChanged("CoresNeeded");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool FinishWhenChildJobsFinished {
-      get {
-        return this.FinishWhenChildJobsFinishedField;
-      }
-      set {
-        if ((this.FinishWhenChildJobsFinishedField.Equals(value) != true)) {
-          this.FinishWhenChildJobsFinishedField = value;
-          this.RaisePropertyChanged("FinishWhenChildJobsFinished");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool IsParentTask {
-      get {
-        return this.IsParentTaskField;
-      }
-      set {
-        if ((this.IsParentTaskField.Equals(value) != true)) {
-          this.IsParentTaskField = value;
-          this.RaisePropertyChanged("IsParentTask");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool IsPrivileged {
-      get {
-        return this.IsPrivilegedField;
-      }
-      set {
-        if ((this.IsPrivilegedField.Equals(value) != true)) {
-          this.IsPrivilegedField = value;
-          this.RaisePropertyChanged("IsPrivileged");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid JobId {
-      get {
-        return this.JobIdField;
-      }
-      set {
-        if ((this.JobIdField.Equals(value) != true)) {
-          this.JobIdField = value;
-          this.RaisePropertyChanged("JobId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.DateTime> LastHeartbeat {
-      get {
-        return this.LastHeartbeatField;
-      }
-      set {
-        if ((this.LastHeartbeatField.Equals(value) != true)) {
-          this.LastHeartbeatField = value;
-          this.RaisePropertyChanged("LastHeartbeat");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int MemoryNeeded {
-      get {
-        return this.MemoryNeededField;
-      }
-      set {
-        if ((this.MemoryNeededField.Equals(value) != true)) {
-          this.MemoryNeededField = value;
-          this.RaisePropertyChanged("MemoryNeeded");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Collections.Generic.List<System.Guid> PluginsNeededIds {
-      get {
-        return this.PluginsNeededIdsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.PluginsNeededIdsField, value) != true)) {
-          this.PluginsNeededIdsField = value;
-          this.RaisePropertyChanged("PluginsNeededIds");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int Priority {
-      get {
-        return this.PriorityField;
-      }
-      set {
-        if ((this.PriorityField.Equals(value) != true)) {
-          this.PriorityField = value;
-          this.RaisePropertyChanged("Priority");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Downtime", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Downtime : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool AllDayEventField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.DowntimeType DowntimeTypeField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime EndDateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool RecurringField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid RecurringIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid ResourceIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime StartDateField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool AllDayEvent {
-      get {
-        return this.AllDayEventField;
-      }
-      set {
-        if ((this.AllDayEventField.Equals(value) != true)) {
-          this.AllDayEventField = value;
-          this.RaisePropertyChanged("AllDayEvent");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.DowntimeType DowntimeType {
-      get {
-        return this.DowntimeTypeField;
-      }
-      set {
-        if ((this.DowntimeTypeField.Equals(value) != true)) {
-          this.DowntimeTypeField = value;
-          this.RaisePropertyChanged("DowntimeType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime EndDate {
-      get {
-        return this.EndDateField;
-      }
-      set {
-        if ((this.EndDateField.Equals(value) != true)) {
-          this.EndDateField = value;
-          this.RaisePropertyChanged("EndDate");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool Recurring {
-      get {
-        return this.RecurringField;
-      }
-      set {
-        if ((this.RecurringField.Equals(value) != true)) {
-          this.RecurringField = value;
-          this.RaisePropertyChanged("Recurring");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid RecurringId {
-      get {
-        return this.RecurringIdField;
-      }
-      set {
-        if ((this.RecurringIdField.Equals(value) != true)) {
-          this.RecurringIdField = value;
-          this.RaisePropertyChanged("RecurringId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid ResourceId {
-      get {
-        return this.ResourceIdField;
-      }
-      set {
-        if ((this.ResourceIdField.Equals(value) != true)) {
-          this.ResourceIdField = value;
-          this.RaisePropertyChanged("ResourceId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime StartDate {
-      get {
-        return this.StartDateField;
-      }
-      set {
-        if ((this.StartDateField.Equals(value) != true)) {
-          this.StartDateField = value;
-          this.RaisePropertyChanged("StartDate");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "JobPermission", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class JobPermission : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid GrantedByUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid GrantedUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid JobIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.Permission PermissionField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid GrantedByUserId {
-      get {
-        return this.GrantedByUserIdField;
-      }
-      set {
-        if ((this.GrantedByUserIdField.Equals(value) != true)) {
-          this.GrantedByUserIdField = value;
-          this.RaisePropertyChanged("GrantedByUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid GrantedUserId {
-      get {
-        return this.GrantedUserIdField;
-      }
-      set {
-        if ((this.GrantedUserIdField.Equals(value) != true)) {
-          this.GrantedUserIdField = value;
-          this.RaisePropertyChanged("GrantedUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid JobId {
-      get {
-        return this.JobIdField;
-      }
-      set {
-        if ((this.JobIdField.Equals(value) != true)) {
-          this.JobIdField = value;
-          this.RaisePropertyChanged("JobId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.Permission Permission {
-      get {
-        return this.PermissionField;
-      }
-      set {
-        if ((this.PermissionField.Equals(value) != true)) {
-          this.PermissionField = value;
-          this.RaisePropertyChanged("Permission");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "PluginData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class PluginData : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private byte[] DataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string FileNameField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid PluginIdField;
-
-    [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 string FileName {
-      get {
-        return this.FileNameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.FileNameField, value) != true)) {
-          this.FileNameField = value;
-          this.RaisePropertyChanged("FileName");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid PluginId {
-      get {
-        return this.PluginIdField;
-      }
-      set {
-        if ((this.PluginIdField.Equals(value) != true)) {
-          this.PluginIdField = value;
-          this.RaisePropertyChanged("PluginId");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResourcePermission", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class ResourcePermission : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid GrantedByUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid GrantedUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid ResourceIdField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid GrantedByUserId {
-      get {
-        return this.GrantedByUserIdField;
-      }
-      set {
-        if ((this.GrantedByUserIdField.Equals(value) != true)) {
-          this.GrantedByUserIdField = value;
-          this.RaisePropertyChanged("GrantedByUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid GrantedUserId {
-      get {
-        return this.GrantedUserIdField;
-      }
-      set {
-        if ((this.GrantedUserIdField.Equals(value) != true)) {
-          this.GrantedUserIdField = value;
-          this.RaisePropertyChanged("GrantedUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid ResourceId {
-      get {
-        return this.ResourceIdField;
-      }
-      set {
-        if ((this.ResourceIdField.Equals(value) != true)) {
-          this.ResourceIdField = value;
-          this.RaisePropertyChanged("ResourceId");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "NamedHiveItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Plugin))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Resource))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
-  public partial class NamedHiveItem : HeuristicLab.Clients.Hive.HiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string DescriptionField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    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 = "Job", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Job : HeuristicLab.Clients.Hive.NamedHiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int CalculatingCountField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime DateCreatedField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int FinishedCountField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int JobCountField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid OwnerUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string OwnerUsernameField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.Permission PermissionField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private string ResourceNamesField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int CalculatingCount {
-      get {
-        return this.CalculatingCountField;
-      }
-      set {
-        if ((this.CalculatingCountField.Equals(value) != true)) {
-          this.CalculatingCountField = value;
-          this.RaisePropertyChanged("CalculatingCount");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime DateCreated {
-      get {
-        return this.DateCreatedField;
-      }
-      set {
-        if ((this.DateCreatedField.Equals(value) != true)) {
-          this.DateCreatedField = value;
-          this.RaisePropertyChanged("DateCreated");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int FinishedCount {
-      get {
-        return this.FinishedCountField;
-      }
-      set {
-        if ((this.FinishedCountField.Equals(value) != true)) {
-          this.FinishedCountField = value;
-          this.RaisePropertyChanged("FinishedCount");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int JobCount {
-      get {
-        return this.JobCountField;
-      }
-      set {
-        if ((this.JobCountField.Equals(value) != true)) {
-          this.JobCountField = value;
-          this.RaisePropertyChanged("JobCount");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid OwnerUserId {
-      get {
-        return this.OwnerUserIdField;
-      }
-      set {
-        if ((this.OwnerUserIdField.Equals(value) != true)) {
-          this.OwnerUserIdField = value;
-          this.RaisePropertyChanged("OwnerUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string OwnerUsername {
-      get {
-        return this.OwnerUsernameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.OwnerUsernameField, value) != true)) {
-          this.OwnerUsernameField = value;
-          this.RaisePropertyChanged("OwnerUsername");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.Permission Permission {
-      get {
-        return this.PermissionField;
-      }
-      set {
-        if ((this.PermissionField.Equals(value) != true)) {
-          this.PermissionField = value;
-          this.RaisePropertyChanged("Permission");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string ResourceNames {
-      get {
-        return this.ResourceNamesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResourceNamesField, value) != true)) {
-          this.ResourceNamesField = value;
-          this.RaisePropertyChanged("ResourceNames");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Plugin", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Plugin : HeuristicLab.Clients.Hive.NamedHiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime DateCreatedField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private byte[] HashField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid UserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Version VersionField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.DateTime DateCreated {
-      get {
-        return this.DateCreatedField;
-      }
-      set {
-        if ((this.DateCreatedField.Equals(value) != true)) {
-          this.DateCreatedField = value;
-          this.RaisePropertyChanged("DateCreated");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public byte[] Hash {
-      get {
-        return this.HashField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.HashField, value) != true)) {
-          this.HashField = value;
-          this.RaisePropertyChanged("Hash");
-        }
-      }
-    }
-
-    [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()]
-    public System.Version Version {
-      get {
-        return this.VersionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.VersionField, value) != true)) {
-          this.VersionField = value;
-          this.RaisePropertyChanged("Version");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Resource", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
-  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
-  public partial class Resource : HeuristicLab.Clients.Hive.NamedHiveItem {
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int HbIntervalField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.Guid> OwnerUserIdField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Nullable<System.Guid> ParentResourceIdField;
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int HbInterval {
-      get {
-        return this.HbIntervalField;
-      }
-      set {
-        if ((this.HbIntervalField.Equals(value) != true)) {
-          this.HbIntervalField = value;
-          this.RaisePropertyChanged("HbInterval");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.Guid> OwnerUserId {
-      get {
-        return this.OwnerUserIdField;
-      }
-      set {
-        if ((this.OwnerUserIdField.Equals(value) != true)) {
-          this.OwnerUserIdField = value;
-          this.RaisePropertyChanged("OwnerUserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Nullable<System.Guid> ParentResourceId {
-      get {
-        return this.ParentResourceIdField;
-      }
-      set {
-        if ((this.ParentResourceIdField.Equals(value) != true)) {
-          this.ParentResourceIdField = value;
-          this.RaisePropertyChanged("ParentResourceId");
-        }
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "SlaveGroup", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class SlaveGroup : HeuristicLab.Clients.Hive.Resource {
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "CpuArchitecture", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  public enum CpuArchitecture : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    x86 = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    x64 = 1,
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "SlaveState", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  public enum SlaveState : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Idle = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Calculating = 1,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Offline = 2,
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Command", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  public enum Command : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Stop = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Abort = 1,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Pause = 2,
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "TaskState", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  public enum TaskState : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Offline = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Waiting = 1,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Transferring = 2,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Calculating = 3,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Paused = 4,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Finished = 5,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Aborted = 6,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Failed = 7,
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "DowntimeType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataAccess")]
-  public enum DowntimeType : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Offline = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Shutdown = 1,
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Permission", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  public enum Permission : int {
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    NotAllowed = 0,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Read = 1,
-
-    [System.Runtime.Serialization.EnumMemberAttribute()]
-    Full = 2,
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "TaskData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class TaskData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    [System.NonSerializedAttribute()]
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private byte[] DataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.DateTime LastUpdateField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid TaskIdField;
-
-    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 System.DateTime LastUpdate {
-      get {
-        return this.LastUpdateField;
-      }
-      set {
-        if ((this.LastUpdateField.Equals(value) != true)) {
-          this.LastUpdateField = value;
-          this.RaisePropertyChanged("LastUpdate");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid TaskId {
-      get {
-        return this.TaskIdField;
-      }
-      set {
-        if ((this.TaskIdField.Equals(value) != true)) {
-          this.TaskIdField = value;
-          this.RaisePropertyChanged("TaskId");
-        }
-      }
-    }
-
-    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 = "Heartbeat", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
-  [System.SerializableAttribute()]
-  public partial class Heartbeat : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    [System.NonSerializedAttribute()]
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private bool AssignJobField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private float CpuUtilizationField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int FreeCoresField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int FreeMemoryField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private int HbIntervalField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Collections.Generic.Dictionary<System.Guid, System.TimeSpan> JobProgressField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid SlaveIdField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public bool AssignJob {
-      get {
-        return this.AssignJobField;
-      }
-      set {
-        if ((this.AssignJobField.Equals(value) != true)) {
-          this.AssignJobField = value;
-          this.RaisePropertyChanged("AssignJob");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public float CpuUtilization {
-      get {
-        return this.CpuUtilizationField;
-      }
-      set {
-        if ((this.CpuUtilizationField.Equals(value) != true)) {
-          this.CpuUtilizationField = value;
-          this.RaisePropertyChanged("CpuUtilization");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int FreeCores {
-      get {
-        return this.FreeCoresField;
-      }
-      set {
-        if ((this.FreeCoresField.Equals(value) != true)) {
-          this.FreeCoresField = value;
-          this.RaisePropertyChanged("FreeCores");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int FreeMemory {
-      get {
-        return this.FreeMemoryField;
-      }
-      set {
-        if ((this.FreeMemoryField.Equals(value) != true)) {
-          this.FreeMemoryField = value;
-          this.RaisePropertyChanged("FreeMemory");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public int HbInterval {
-      get {
-        return this.HbIntervalField;
-      }
-      set {
-        if ((this.HbIntervalField.Equals(value) != true)) {
-          this.HbIntervalField = value;
-          this.RaisePropertyChanged("HbInterval");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Collections.Generic.Dictionary<System.Guid, System.TimeSpan> JobProgress {
-      get {
-        return this.JobProgressField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.JobProgressField, value) != true)) {
-          this.JobProgressField = value;
-          this.RaisePropertyChanged("JobProgress");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid SlaveId {
-      get {
-        return this.SlaveIdField;
-      }
-      set {
-        if ((this.SlaveIdField.Equals(value) != true)) {
-          this.SlaveIdField = value;
-          this.RaisePropertyChanged("SlaveId");
-        }
-      }
-    }
-
-    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 = "MessageContainer", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
-  [System.SerializableAttribute()]
-  public partial class MessageContainer : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    [System.NonSerializedAttribute()]
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private HeuristicLab.Clients.Hive.MessageContainer.MessageType MessageField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid TaskIdField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.Hive.MessageContainer.MessageType Message {
-      get {
-        return this.MessageField;
-      }
-      set {
-        if ((this.MessageField.Equals(value) != true)) {
-          this.MessageField = value;
-          this.RaisePropertyChanged("Message");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid TaskId {
-      get {
-        return this.TaskIdField;
-      }
-      set {
-        if ((this.TaskIdField.Equals(value) != true)) {
-          this.TaskIdField = value;
-          this.RaisePropertyChanged("TaskId");
-        }
-      }
-    }
-
-    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));
-      }
-    }
-
+namespace HeuristicLab.Clients.Hive
+{
+    using System.Runtime.Serialization;
+    using System;
+    
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name = "MessageContainer.MessageType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
-    public enum MessageType : int {
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      CalculateTask = 0,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      StopTask = 1,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      StopAll = 2,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      AbortTask = 3,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      AbortAll = 4,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      PauseTask = 5,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      PauseAll = 6,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      Restart = 7,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      Sleep = 8,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      ShutdownSlave = 9,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      SayHello = 10,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      NewHBInterval = 11,
-
-      [System.Runtime.Serialization.EnumMemberAttribute()]
-      ShutdownComputer = 12,
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "PluginAlreadyExistsFault", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
-  [System.SerializableAttribute()]
-  public partial class PluginAlreadyExistsFault : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    [System.NonSerializedAttribute()]
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    [System.Runtime.Serialization.OptionalFieldAttribute()]
-    private System.Guid IdField;
-
-    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");
-        }
-      }
-    }
-
-    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.Hive.IHiveService")]
-  public interface IHiveService {
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetSlaves", ReplyAction = "http://tempuri.org/IHiveService/GetSlavesResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Slave> GetSlaves();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetSlaveGroups", ReplyAction = "http://tempuri.org/IHiveService/GetSlaveGroupsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveGroup> GetSlaveGroups();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateSlave", ReplyAction = "http://tempuri.org/IHiveService/UpdateSlaveResponse")]
-    void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateSlaveGroup", ReplyAction = "http://tempuri.org/IHiveService/UpdateSlaveGroupResponse")]
-    void UpdateSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteSlave", ReplyAction = "http://tempuri.org/IHiveService/DeleteSlaveResponse")]
-    void DeleteSlave(System.Guid slaveId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteSlaveGroup", ReplyAction = "http://tempuri.org/IHiveService/DeleteSlaveGroupResponse")]
-    void DeleteSlaveGroup(System.Guid slaveGroupId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddResourceToGroup", ReplyAction = "http://tempuri.org/IHiveService/AddResourceToGroupResponse")]
-    void AddResourceToGroup(System.Guid slaveGroupId, System.Guid resourceId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/RemoveResourceFromGroup", ReplyAction = "http://tempuri.org/IHiveService/RemoveResourceFromGroupResponse")]
-    void RemoveResourceFromGroup(System.Guid slaveGroupId, System.Guid resourceId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetResourceId", ReplyAction = "http://tempuri.org/IHiveService/GetResourceIdResponse")]
-    System.Guid GetResourceId(string resourceName);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetTasksByResourceId", ReplyAction = "http://tempuri.org/IHiveService/GetTasksByResourceIdResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasksByResourceId(System.Guid resourceId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/TriggerEventManager", ReplyAction = "http://tempuri.org/IHiveService/TriggerEventManagerResponse")]
-    void TriggerEventManager(bool force);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetNewHeartbeatInterval", ReplyAction = "http://tempuri.org/IHiveService/GetNewHeartbeatIntervalResponse")]
-    int GetNewHeartbeatInterval(System.Guid slaveId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddDowntime", ReplyAction = "http://tempuri.org/IHiveService/AddDowntimeResponse")]
-    System.Guid AddDowntime(HeuristicLab.Clients.Hive.Downtime downtime);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteDowntime", ReplyAction = "http://tempuri.org/IHiveService/DeleteDowntimeResponse")]
-    void DeleteDowntime(System.Guid downtimeId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateDowntime", ReplyAction = "http://tempuri.org/IHiveService/UpdateDowntimeResponse")]
-    void UpdateDowntime(HeuristicLab.Clients.Hive.Downtime downtime);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetDowntimesForResource", ReplyAction = "http://tempuri.org/IHiveService/GetDowntimesForResourceResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Downtime> GetDowntimesForResource(System.Guid resourceId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetUsernameByUserId", ReplyAction = "http://tempuri.org/IHiveService/GetUsernameByUserIdResponse")]
-    string GetUsernameByUserId(System.Guid userId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetUserIdByUsername", ReplyAction = "http://tempuri.org/IHiveService/GetUserIdByUsernameResponse")]
-    System.Guid GetUserIdByUsername(string username);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddTask", ReplyAction = "http://tempuri.org/IHiveService/AddTaskResponse")]
-    System.Guid AddTask(HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData, System.Collections.Generic.List<System.Guid> resourceIds);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddChildTask", ReplyAction = "http://tempuri.org/IHiveService/AddChildTaskResponse")]
-    System.Guid AddChildTask(System.Guid parentTaskId, HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetTask", ReplyAction = "http://tempuri.org/IHiveService/GetTaskResponse")]
-    HeuristicLab.Clients.Hive.Task GetTask(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetTasks", ReplyAction = "http://tempuri.org/IHiveService/GetTasksResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasks();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetLightweightTasks", ReplyAction = "http://tempuri.org/IHiveService/GetLightweightTasksResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightTasks(System.Collections.Generic.List<System.Guid> taskIds);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetLightweightChildTasks", ReplyAction = "http://tempuri.org/IHiveService/GetLightweightChildTasksResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightChildTasks(System.Nullable<System.Guid> parentTaskId, bool recursive, bool includeParent);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetLightweightJobTasks", ReplyAction = "http://tempuri.org/IHiveService/GetLightweightJobTasksResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasks(System.Guid jobId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetTaskData", ReplyAction = "http://tempuri.org/IHiveService/GetTaskDataResponse")]
-    HeuristicLab.Clients.Hive.TaskData GetTaskData(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateTask", ReplyAction = "http://tempuri.org/IHiveService/UpdateTaskResponse")]
-    void UpdateTask(HeuristicLab.Clients.Hive.Task taskDto);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateTaskData", ReplyAction = "http://tempuri.org/IHiveService/UpdateTaskDataResponse")]
-    void UpdateTaskData(HeuristicLab.Clients.Hive.Task taskDto, HeuristicLab.Clients.Hive.TaskData taskDataDto);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteTask", ReplyAction = "http://tempuri.org/IHiveService/DeleteTaskResponse")]
-    void DeleteTask(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteChildTasks", ReplyAction = "http://tempuri.org/IHiveService/DeleteChildTasksResponse")]
-    void DeleteChildTasks(System.Guid parentTaskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateTaskState", ReplyAction = "http://tempuri.org/IHiveService/UpdateTaskStateResponse")]
-    HeuristicLab.Clients.Hive.Task UpdateTaskState(System.Guid taskId, HeuristicLab.Clients.Hive.TaskState taskState, System.Nullable<System.Guid> slaveId, System.Nullable<System.Guid> userId, string exception);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/StopTask", ReplyAction = "http://tempuri.org/IHiveService/StopTaskResponse")]
-    void StopTask(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/PauseTask", ReplyAction = "http://tempuri.org/IHiveService/PauseTaskResponse")]
-    void PauseTask(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/RestartTask", ReplyAction = "http://tempuri.org/IHiveService/RestartTaskResponse")]
-    void RestartTask(System.Guid taskId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetJob", ReplyAction = "http://tempuri.org/IHiveService/GetJobResponse")]
-    HeuristicLab.Clients.Hive.Job GetJob(System.Guid id);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetJobs", ReplyAction = "http://tempuri.org/IHiveService/GetJobsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetAllJobs", ReplyAction = "http://tempuri.org/IHiveService/GetAllJobsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetAllJobs();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddJob", ReplyAction = "http://tempuri.org/IHiveService/AddJobResponse")]
-    System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/UpdateJob", ReplyAction = "http://tempuri.org/IHiveService/UpdateJobResponse")]
-    void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeleteJob", ReplyAction = "http://tempuri.org/IHiveService/DeleteJobResponse")]
-    void DeleteJob(System.Guid JobId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GrantPermission", ReplyAction = "http://tempuri.org/IHiveService/GrantPermissionResponse")]
-    void GrantPermission(System.Guid jobId, System.Guid grantedUserId, HeuristicLab.Clients.Hive.Permission permission);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/RevokePermission", ReplyAction = "http://tempuri.org/IHiveService/RevokePermissionResponse")]
-    void RevokePermission(System.Guid hiveExperimentId, System.Guid grantedUserId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetJobPermissions", ReplyAction = "http://tempuri.org/IHiveService/GetJobPermissionsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.JobPermission> GetJobPermissions(System.Guid jobId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/IsAllowedPrivileged", ReplyAction = "http://tempuri.org/IHiveService/IsAllowedPrivilegedResponse")]
-    bool IsAllowedPrivileged();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/Hello", ReplyAction = "http://tempuri.org/IHiveService/HelloResponse")]
-    void Hello(HeuristicLab.Clients.Hive.Slave slave);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GoodBye", ReplyAction = "http://tempuri.org/IHiveService/GoodByeResponse")]
-    void GoodBye(System.Guid slaveId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/Heartbeat", ReplyAction = "http://tempuri.org/IHiveService/HeartbeatResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.MessageContainer> Heartbeat([System.ServiceModel.MessageParameterAttribute(Name = "heartbeat")] HeuristicLab.Clients.Hive.Heartbeat heartbeat1);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetPlugin", ReplyAction = "http://tempuri.org/IHiveService/GetPluginResponse")]
-    HeuristicLab.Clients.Hive.Plugin GetPlugin(System.Guid pluginId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetPluginByHash", ReplyAction = "http://tempuri.org/IHiveService/GetPluginByHashResponse")]
-    HeuristicLab.Clients.Hive.Plugin GetPluginByHash(byte[] hash);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddPlugin", ReplyAction = "http://tempuri.org/IHiveService/AddPluginResponse")]
-    [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.Hive.PluginAlreadyExistsFault), Action = "http://tempuri.org/IHiveService/AddPluginPluginAlreadyExistsFaultFault", Name = "PluginAlreadyExistsFault", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
-    System.Guid AddPlugin(HeuristicLab.Clients.Hive.Plugin plugin, System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> pluginData);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetPlugins", ReplyAction = "http://tempuri.org/IHiveService/GetPluginsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.Plugin> GetPlugins();
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetPluginDatas", ReplyAction = "http://tempuri.org/IHiveService/GetPluginDatasResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> GetPluginDatas(System.Collections.Generic.List<System.Guid> pluginIds);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/DeletePlugin", ReplyAction = "http://tempuri.org/IHiveService/DeletePluginResponse")]
-    void DeletePlugin(System.Guid pluginId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GrantResourcePermissions", ReplyAction = "http://tempuri.org/IHiveService/GrantResourcePermissionsResponse")]
-    void GrantResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/RevokeResourcePermissions", ReplyAction = "http://tempuri.org/IHiveService/RevokeResourcePermissionsResponse")]
-    void RevokeResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetResourcePermissions", ReplyAction = "http://tempuri.org/IHiveService/GetResourcePermissionsResponse")]
-    System.Collections.Generic.List<HeuristicLab.Clients.Hive.ResourcePermission> GetResourcePermissions(System.Guid resourceId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddSlave", ReplyAction = "http://tempuri.org/IHiveService/AddSlaveResponse")]
-    System.Guid AddSlave(HeuristicLab.Clients.Hive.Slave slave);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/AddSlaveGroup", ReplyAction = "http://tempuri.org/IHiveService/AddSlaveGroupResponse")]
-    System.Guid AddSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetSlave", ReplyAction = "http://tempuri.org/IHiveService/GetSlaveResponse")]
-    HeuristicLab.Clients.Hive.Slave GetSlave(System.Guid slaveId);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IHiveService/GetSlaveGroup", ReplyAction = "http://tempuri.org/IHiveService/GetSlaveGroupResponse")]
-    HeuristicLab.Clients.Hive.SlaveGroup GetSlaveGroup(System.Guid slaveGroupId);
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public interface IHiveServiceChannel : HeuristicLab.Clients.Hive.IHiveService, System.ServiceModel.IClientChannel {
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class HiveServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.Hive.IHiveService>, HeuristicLab.Clients.Hive.IHiveService {
-
-    public HiveServiceClient() {
-    }
-
-    public HiveServiceClient(string endpointConfigurationName) :
-      base(endpointConfigurationName) {
-    }
-
-    public HiveServiceClient(string endpointConfigurationName, string remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public HiveServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public HiveServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(binding, remoteAddress) {
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Slave> GetSlaves() {
-      return base.Channel.GetSlaves();
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveGroup> GetSlaveGroups() {
-      return base.Channel.GetSlaveGroups();
-    }
-
-    public void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave) {
-      base.Channel.UpdateSlave(slave);
-    }
-
-    public void UpdateSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup) {
-      base.Channel.UpdateSlaveGroup(slaveGroup);
-    }
-
-    public void DeleteSlave(System.Guid slaveId) {
-      base.Channel.DeleteSlave(slaveId);
-    }
-
-    public void DeleteSlaveGroup(System.Guid slaveGroupId) {
-      base.Channel.DeleteSlaveGroup(slaveGroupId);
-    }
-
-    public void AddResourceToGroup(System.Guid slaveGroupId, System.Guid resourceId) {
-      base.Channel.AddResourceToGroup(slaveGroupId, resourceId);
-    }
-
-    public void RemoveResourceFromGroup(System.Guid slaveGroupId, System.Guid resourceId) {
-      base.Channel.RemoveResourceFromGroup(slaveGroupId, resourceId);
-    }
-
-    public System.Guid GetResourceId(string resourceName) {
-      return base.Channel.GetResourceId(resourceName);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasksByResourceId(System.Guid resourceId) {
-      return base.Channel.GetTasksByResourceId(resourceId);
-    }
-
-    public void TriggerEventManager(bool force) {
-      base.Channel.TriggerEventManager(force);
-    }
-
-    public int GetNewHeartbeatInterval(System.Guid slaveId) {
-      return base.Channel.GetNewHeartbeatInterval(slaveId);
-    }
-
-    public System.Guid AddDowntime(HeuristicLab.Clients.Hive.Downtime downtime) {
-      return base.Channel.AddDowntime(downtime);
-    }
-
-    public void DeleteDowntime(System.Guid downtimeId) {
-      base.Channel.DeleteDowntime(downtimeId);
-    }
-
-    public void UpdateDowntime(HeuristicLab.Clients.Hive.Downtime downtime) {
-      base.Channel.UpdateDowntime(downtime);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Downtime> GetDowntimesForResource(System.Guid resourceId) {
-      return base.Channel.GetDowntimesForResource(resourceId);
-    }
-
-    public string GetUsernameByUserId(System.Guid userId) {
-      return base.Channel.GetUsernameByUserId(userId);
-    }
-
-    public System.Guid GetUserIdByUsername(string username) {
-      return base.Channel.GetUserIdByUsername(username);
-    }
-
-    public System.Guid AddTask(HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData, System.Collections.Generic.List<System.Guid> resourceIds) {
-      return base.Channel.AddTask(task, taskData, resourceIds);
-    }
-
-    public System.Guid AddChildTask(System.Guid parentTaskId, HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData) {
-      return base.Channel.AddChildTask(parentTaskId, task, taskData);
-    }
-
-    public HeuristicLab.Clients.Hive.Task GetTask(System.Guid taskId) {
-      return base.Channel.GetTask(taskId);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasks() {
-      return base.Channel.GetTasks();
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightTasks(System.Collections.Generic.List<System.Guid> taskIds) {
-      return base.Channel.GetLightweightTasks(taskIds);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightChildTasks(System.Nullable<System.Guid> parentTaskId, bool recursive, bool includeParent) {
-      return base.Channel.GetLightweightChildTasks(parentTaskId, recursive, includeParent);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasks(System.Guid jobId) {
-      return base.Channel.GetLightweightJobTasks(jobId);
-    }
-
-    public HeuristicLab.Clients.Hive.TaskData GetTaskData(System.Guid taskId) {
-      return base.Channel.GetTaskData(taskId);
-    }
-
-    public void UpdateTask(HeuristicLab.Clients.Hive.Task taskDto) {
-      base.Channel.UpdateTask(taskDto);
-    }
-
-    public void UpdateTaskData(HeuristicLab.Clients.Hive.Task taskDto, HeuristicLab.Clients.Hive.TaskData taskDataDto) {
-      base.Channel.UpdateTaskData(taskDto, taskDataDto);
-    }
-
-    public void DeleteTask(System.Guid taskId) {
-      base.Channel.DeleteTask(taskId);
-    }
-
-    public void DeleteChildTasks(System.Guid parentTaskId) {
-      base.Channel.DeleteChildTasks(parentTaskId);
-    }
-
-    public HeuristicLab.Clients.Hive.Task UpdateTaskState(System.Guid taskId, HeuristicLab.Clients.Hive.TaskState taskState, System.Nullable<System.Guid> slaveId, System.Nullable<System.Guid> userId, string exception) {
-      return base.Channel.UpdateTaskState(taskId, taskState, slaveId, userId, exception);
-    }
-
-    public void StopTask(System.Guid taskId) {
-      base.Channel.StopTask(taskId);
-    }
-
-    public void PauseTask(System.Guid taskId) {
-      base.Channel.PauseTask(taskId);
-    }
-
-    public void RestartTask(System.Guid taskId) {
-      base.Channel.RestartTask(taskId);
-    }
-
-    public HeuristicLab.Clients.Hive.Job GetJob(System.Guid id) {
-      return base.Channel.GetJob(id);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs() {
-      return base.Channel.GetJobs();
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetAllJobs() {
-      return base.Channel.GetAllJobs();
-    }
-
-    public System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto) {
-      return base.Channel.AddJob(jobDto);
-    }
-
-    public void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto) {
-      base.Channel.UpdateJob(jobDto);
-    }
-
-    public void DeleteJob(System.Guid JobId) {
-      base.Channel.DeleteJob(JobId);
-    }
-
-    public void GrantPermission(System.Guid jobId, System.Guid grantedUserId, HeuristicLab.Clients.Hive.Permission permission) {
-      base.Channel.GrantPermission(jobId, grantedUserId, permission);
-    }
-
-    public void RevokePermission(System.Guid hiveExperimentId, System.Guid grantedUserId) {
-      base.Channel.RevokePermission(hiveExperimentId, grantedUserId);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.JobPermission> GetJobPermissions(System.Guid jobId) {
-      return base.Channel.GetJobPermissions(jobId);
-    }
-
-    public bool IsAllowedPrivileged() {
-      return base.Channel.IsAllowedPrivileged();
-    }
-
-    public void Hello(HeuristicLab.Clients.Hive.Slave slave) {
-      base.Channel.Hello(slave);
-    }
-
-    public void GoodBye(System.Guid slaveId) {
-      base.Channel.GoodBye(slaveId);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.MessageContainer> Heartbeat(HeuristicLab.Clients.Hive.Heartbeat heartbeat1) {
-      return base.Channel.Heartbeat(heartbeat1);
-    }
-
-    public HeuristicLab.Clients.Hive.Plugin GetPlugin(System.Guid pluginId) {
-      return base.Channel.GetPlugin(pluginId);
-    }
-
-    public HeuristicLab.Clients.Hive.Plugin GetPluginByHash(byte[] hash) {
-      return base.Channel.GetPluginByHash(hash);
-    }
-
-    public System.Guid AddPlugin(HeuristicLab.Clients.Hive.Plugin plugin, System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> pluginData) {
-      return base.Channel.AddPlugin(plugin, pluginData);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Plugin> GetPlugins() {
-      return base.Channel.GetPlugins();
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> GetPluginDatas(System.Collections.Generic.List<System.Guid> pluginIds) {
-      return base.Channel.GetPluginDatas(pluginIds);
-    }
-
-    public void DeletePlugin(System.Guid pluginId) {
-      base.Channel.DeletePlugin(pluginId);
-    }
-
-    public void GrantResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds) {
-      base.Channel.GrantResourcePermissions(resourceId, grantedUserIds);
-    }
-
-    public void RevokeResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds) {
-      base.Channel.RevokeResourcePermissions(resourceId, grantedUserIds);
-    }
-
-    public System.Collections.Generic.List<HeuristicLab.Clients.Hive.ResourcePermission> GetResourcePermissions(System.Guid resourceId) {
-      return base.Channel.GetResourcePermissions(resourceId);
-    }
-
-    public System.Guid AddSlave(HeuristicLab.Clients.Hive.Slave slave) {
-      return base.Channel.AddSlave(slave);
-    }
-
-    public System.Guid AddSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup) {
-      return base.Channel.AddSlaveGroup(slaveGroup);
-    }
-
-    public HeuristicLab.Clients.Hive.Slave GetSlave(System.Guid slaveId) {
-      return base.Channel.GetSlave(slaveId);
-    }
-
-    public HeuristicLab.Clients.Hive.SlaveGroup GetSlaveGroup(System.Guid slaveGroupId) {
-      return base.Channel.GetSlaveGroup(slaveGroupId);
-    }
-  }
+    [System.Runtime.Serialization.DataContractAttribute(Name="HiveItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightTask))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.StateLog))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Task))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Downtime))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.UserPriority))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Statistics))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveStatistics))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.UserStatistics))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.JobPermission))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.PluginData))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.ResourcePermission))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.NamedHiveItem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Plugin))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Resource))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
+    public partial class HiveItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid IdField;
+        
+        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");
+                }
+            }
+        }
+        
+        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="LightweightTask", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Task))]
+    public partial class LightweightTask : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<HeuristicLab.Clients.Hive.Command> CommandField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.TimeSpan ExecutionTimeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime LastTaskDataUpdateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> ParentTaskIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.TaskState StateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.List<HeuristicLab.Clients.Hive.StateLog> StateLogField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<HeuristicLab.Clients.Hive.Command> Command
+        {
+            get
+            {
+                return this.CommandField;
+            }
+            set
+            {
+                if ((this.CommandField.Equals(value) != true))
+                {
+                    this.CommandField = value;
+                    this.RaisePropertyChanged("Command");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.TimeSpan ExecutionTime
+        {
+            get
+            {
+                return this.ExecutionTimeField;
+            }
+            set
+            {
+                if ((this.ExecutionTimeField.Equals(value) != true))
+                {
+                    this.ExecutionTimeField = value;
+                    this.RaisePropertyChanged("ExecutionTime");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime LastTaskDataUpdate
+        {
+            get
+            {
+                return this.LastTaskDataUpdateField;
+            }
+            set
+            {
+                if ((this.LastTaskDataUpdateField.Equals(value) != true))
+                {
+                    this.LastTaskDataUpdateField = value;
+                    this.RaisePropertyChanged("LastTaskDataUpdate");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.Guid> ParentTaskId
+        {
+            get
+            {
+                return this.ParentTaskIdField;
+            }
+            set
+            {
+                if ((this.ParentTaskIdField.Equals(value) != true))
+                {
+                    this.ParentTaskIdField = value;
+                    this.RaisePropertyChanged("ParentTaskId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.TaskState State
+        {
+            get
+            {
+                return this.StateField;
+            }
+            set
+            {
+                if ((this.StateField.Equals(value) != true))
+                {
+                    this.StateField = value;
+                    this.RaisePropertyChanged("State");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.StateLog> StateLog
+        {
+            get
+            {
+                return this.StateLogField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.StateLogField, value) != true))
+                {
+                    this.StateLogField = value;
+                    this.RaisePropertyChanged("StateLog");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="StateLog", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class StateLog : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateTimeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string ExceptionField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> SlaveIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.TaskState StateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid TaskIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> UserIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime DateTime
+        {
+            get
+            {
+                return this.DateTimeField;
+            }
+            set
+            {
+                if ((this.DateTimeField.Equals(value) != true))
+                {
+                    this.DateTimeField = value;
+                    this.RaisePropertyChanged("DateTime");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string Exception
+        {
+            get
+            {
+                return this.ExceptionField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.ExceptionField, value) != true))
+                {
+                    this.ExceptionField = value;
+                    this.RaisePropertyChanged("Exception");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.Guid> SlaveId
+        {
+            get
+            {
+                return this.SlaveIdField;
+            }
+            set
+            {
+                if ((this.SlaveIdField.Equals(value) != true))
+                {
+                    this.SlaveIdField = value;
+                    this.RaisePropertyChanged("SlaveId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.TaskState State
+        {
+            get
+            {
+                return this.StateField;
+            }
+            set
+            {
+                if ((this.StateField.Equals(value) != true))
+                {
+                    this.StateField = value;
+                    this.RaisePropertyChanged("State");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid TaskId
+        {
+            get
+            {
+                return this.TaskIdField;
+            }
+            set
+            {
+                if ((this.TaskIdField.Equals(value) != true))
+                {
+                    this.TaskIdField = value;
+                    this.RaisePropertyChanged("TaskId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.Guid> UserId
+        {
+            get
+            {
+                return this.UserIdField;
+            }
+            set
+            {
+                if ((this.UserIdField.Equals(value) != true))
+                {
+                    this.UserIdField = value;
+                    this.RaisePropertyChanged("UserId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Task", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Task : HeuristicLab.Clients.Hive.LightweightTask
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int CoresNeededField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool FinishWhenChildJobsFinishedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool IsParentTaskField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool IsPrivilegedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.DateTime> LastHeartbeatField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int MemoryNeededField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.List<System.Guid> PluginsNeededIdsField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int PriorityField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int CoresNeeded
+        {
+            get
+            {
+                return this.CoresNeededField;
+            }
+            set
+            {
+                if ((this.CoresNeededField.Equals(value) != true))
+                {
+                    this.CoresNeededField = value;
+                    this.RaisePropertyChanged("CoresNeeded");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool FinishWhenChildJobsFinished
+        {
+            get
+            {
+                return this.FinishWhenChildJobsFinishedField;
+            }
+            set
+            {
+                if ((this.FinishWhenChildJobsFinishedField.Equals(value) != true))
+                {
+                    this.FinishWhenChildJobsFinishedField = value;
+                    this.RaisePropertyChanged("FinishWhenChildJobsFinished");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool IsParentTask
+        {
+            get
+            {
+                return this.IsParentTaskField;
+            }
+            set
+            {
+                if ((this.IsParentTaskField.Equals(value) != true))
+                {
+                    this.IsParentTaskField = value;
+                    this.RaisePropertyChanged("IsParentTask");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool IsPrivileged
+        {
+            get
+            {
+                return this.IsPrivilegedField;
+            }
+            set
+            {
+                if ((this.IsPrivilegedField.Equals(value) != true))
+                {
+                    this.IsPrivilegedField = value;
+                    this.RaisePropertyChanged("IsPrivileged");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid JobId
+        {
+            get
+            {
+                return this.JobIdField;
+            }
+            set
+            {
+                if ((this.JobIdField.Equals(value) != true))
+                {
+                    this.JobIdField = value;
+                    this.RaisePropertyChanged("JobId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.DateTime> LastHeartbeat
+        {
+            get
+            {
+                return this.LastHeartbeatField;
+            }
+            set
+            {
+                if ((this.LastHeartbeatField.Equals(value) != true))
+                {
+                    this.LastHeartbeatField = value;
+                    this.RaisePropertyChanged("LastHeartbeat");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int MemoryNeeded
+        {
+            get
+            {
+                return this.MemoryNeededField;
+            }
+            set
+            {
+                if ((this.MemoryNeededField.Equals(value) != true))
+                {
+                    this.MemoryNeededField = value;
+                    this.RaisePropertyChanged("MemoryNeeded");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Collections.Generic.List<System.Guid> PluginsNeededIds
+        {
+            get
+            {
+                return this.PluginsNeededIdsField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.PluginsNeededIdsField, value) != true))
+                {
+                    this.PluginsNeededIdsField = value;
+                    this.RaisePropertyChanged("PluginsNeededIds");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int Priority
+        {
+            get
+            {
+                return this.PriorityField;
+            }
+            set
+            {
+                if ((this.PriorityField.Equals(value) != true))
+                {
+                    this.PriorityField = value;
+                    this.RaisePropertyChanged("Priority");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Downtime", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Downtime : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool AllDayEventField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.DowntimeType DowntimeTypeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime EndDateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool RecurringField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid RecurringIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid ResourceIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime StartDateField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool AllDayEvent
+        {
+            get
+            {
+                return this.AllDayEventField;
+            }
+            set
+            {
+                if ((this.AllDayEventField.Equals(value) != true))
+                {
+                    this.AllDayEventField = value;
+                    this.RaisePropertyChanged("AllDayEvent");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.DowntimeType DowntimeType
+        {
+            get
+            {
+                return this.DowntimeTypeField;
+            }
+            set
+            {
+                if ((this.DowntimeTypeField.Equals(value) != true))
+                {
+                    this.DowntimeTypeField = value;
+                    this.RaisePropertyChanged("DowntimeType");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime EndDate
+        {
+            get
+            {
+                return this.EndDateField;
+            }
+            set
+            {
+                if ((this.EndDateField.Equals(value) != true))
+                {
+                    this.EndDateField = value;
+                    this.RaisePropertyChanged("EndDate");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool Recurring
+        {
+            get
+            {
+                return this.RecurringField;
+            }
+            set
+            {
+                if ((this.RecurringField.Equals(value) != true))
+                {
+                    this.RecurringField = value;
+                    this.RaisePropertyChanged("Recurring");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid RecurringId
+        {
+            get
+            {
+                return this.RecurringIdField;
+            }
+            set
+            {
+                if ((this.RecurringIdField.Equals(value) != true))
+                {
+                    this.RecurringIdField = value;
+                    this.RaisePropertyChanged("RecurringId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid ResourceId
+        {
+            get
+            {
+                return this.ResourceIdField;
+            }
+            set
+            {
+                if ((this.ResourceIdField.Equals(value) != true))
+                {
+                    this.ResourceIdField = value;
+                    this.RaisePropertyChanged("ResourceId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime StartDate
+        {
+            get
+            {
+                return this.StartDateField;
+            }
+            set
+            {
+                if ((this.StartDateField.Equals(value) != true))
+                {
+                    this.StartDateField = value;
+                    this.RaisePropertyChanged("StartDate");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="UserPriority", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class UserPriority : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateEnqueuedField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime DateEnqueued
+        {
+            get
+            {
+                return this.DateEnqueuedField;
+            }
+            set
+            {
+                if ((this.DateEnqueuedField.Equals(value) != true))
+                {
+                    this.DateEnqueuedField = value;
+                    this.RaisePropertyChanged("DateEnqueued");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Statistics", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Statistics : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveStatistics> SlaveStatisticsField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime TimeStampField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.List<HeuristicLab.Clients.Hive.UserStatistics> UserStatisticsField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveStatistics> SlaveStatistics
+        {
+            get
+            {
+                return this.SlaveStatisticsField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.SlaveStatisticsField, value) != true))
+                {
+                    this.SlaveStatisticsField = value;
+                    this.RaisePropertyChanged("SlaveStatistics");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime TimeStamp
+        {
+            get
+            {
+                return this.TimeStampField;
+            }
+            set
+            {
+                if ((this.TimeStampField.Equals(value) != true))
+                {
+                    this.TimeStampField = value;
+                    this.RaisePropertyChanged("TimeStamp");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.UserStatistics> UserStatistics
+        {
+            get
+            {
+                return this.UserStatisticsField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.UserStatisticsField, value) != true))
+                {
+                    this.UserStatisticsField = value;
+                    this.RaisePropertyChanged("UserStatistics");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="SlaveStatistics", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class SlaveStatistics : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int CoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private double CpuUtilizationField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int FreeCoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int FreeMemoryField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int MemoryField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid SlaveIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int Cores
+        {
+            get
+            {
+                return this.CoresField;
+            }
+            set
+            {
+                if ((this.CoresField.Equals(value) != true))
+                {
+                    this.CoresField = value;
+                    this.RaisePropertyChanged("Cores");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public double CpuUtilization
+        {
+            get
+            {
+                return this.CpuUtilizationField;
+            }
+            set
+            {
+                if ((this.CpuUtilizationField.Equals(value) != true))
+                {
+                    this.CpuUtilizationField = value;
+                    this.RaisePropertyChanged("CpuUtilization");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int FreeCores
+        {
+            get
+            {
+                return this.FreeCoresField;
+            }
+            set
+            {
+                if ((this.FreeCoresField.Equals(value) != true))
+                {
+                    this.FreeCoresField = value;
+                    this.RaisePropertyChanged("FreeCores");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int FreeMemory
+        {
+            get
+            {
+                return this.FreeMemoryField;
+            }
+            set
+            {
+                if ((this.FreeMemoryField.Equals(value) != true))
+                {
+                    this.FreeMemoryField = value;
+                    this.RaisePropertyChanged("FreeMemory");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int Memory
+        {
+            get
+            {
+                return this.MemoryField;
+            }
+            set
+            {
+                if ((this.MemoryField.Equals(value) != true))
+                {
+                    this.MemoryField = value;
+                    this.RaisePropertyChanged("Memory");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid SlaveId
+        {
+            get
+            {
+                return this.SlaveIdField;
+            }
+            set
+            {
+                if ((this.SlaveIdField.Equals(value) != true))
+                {
+                    this.SlaveIdField = value;
+                    this.RaisePropertyChanged("SlaveId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="UserStatistics", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class UserStatistics : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.TimeSpan ExecutionTimeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.TimeSpan ExecutionTimeFinishedJobsField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.TimeSpan StartToEndTimeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int UsedCoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid UserIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.TimeSpan ExecutionTime
+        {
+            get
+            {
+                return this.ExecutionTimeField;
+            }
+            set
+            {
+                if ((this.ExecutionTimeField.Equals(value) != true))
+                {
+                    this.ExecutionTimeField = value;
+                    this.RaisePropertyChanged("ExecutionTime");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.TimeSpan ExecutionTimeFinishedJobs
+        {
+            get
+            {
+                return this.ExecutionTimeFinishedJobsField;
+            }
+            set
+            {
+                if ((this.ExecutionTimeFinishedJobsField.Equals(value) != true))
+                {
+                    this.ExecutionTimeFinishedJobsField = value;
+                    this.RaisePropertyChanged("ExecutionTimeFinishedJobs");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.TimeSpan StartToEndTime
+        {
+            get
+            {
+                return this.StartToEndTimeField;
+            }
+            set
+            {
+                if ((this.StartToEndTimeField.Equals(value) != true))
+                {
+                    this.StartToEndTimeField = value;
+                    this.RaisePropertyChanged("StartToEndTime");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int UsedCores
+        {
+            get
+            {
+                return this.UsedCoresField;
+            }
+            set
+            {
+                if ((this.UsedCoresField.Equals(value) != true))
+                {
+                    this.UsedCoresField = value;
+                    this.RaisePropertyChanged("UsedCores");
+                }
+            }
+        }
+        
+        [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.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="JobPermission", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class JobPermission : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid GrantedByUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid GrantedUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.Permission PermissionField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid GrantedByUserId
+        {
+            get
+            {
+                return this.GrantedByUserIdField;
+            }
+            set
+            {
+                if ((this.GrantedByUserIdField.Equals(value) != true))
+                {
+                    this.GrantedByUserIdField = value;
+                    this.RaisePropertyChanged("GrantedByUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid GrantedUserId
+        {
+            get
+            {
+                return this.GrantedUserIdField;
+            }
+            set
+            {
+                if ((this.GrantedUserIdField.Equals(value) != true))
+                {
+                    this.GrantedUserIdField = value;
+                    this.RaisePropertyChanged("GrantedUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid JobId
+        {
+            get
+            {
+                return this.JobIdField;
+            }
+            set
+            {
+                if ((this.JobIdField.Equals(value) != true))
+                {
+                    this.JobIdField = value;
+                    this.RaisePropertyChanged("JobId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.Permission Permission
+        {
+            get
+            {
+                return this.PermissionField;
+            }
+            set
+            {
+                if ((this.PermissionField.Equals(value) != true))
+                {
+                    this.PermissionField = value;
+                    this.RaisePropertyChanged("Permission");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="PluginData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class PluginData : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private byte[] DataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string FileNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid PluginIdField;
+        
+        [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 string FileName
+        {
+            get
+            {
+                return this.FileNameField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.FileNameField, value) != true))
+                {
+                    this.FileNameField = value;
+                    this.RaisePropertyChanged("FileName");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid PluginId
+        {
+            get
+            {
+                return this.PluginIdField;
+            }
+            set
+            {
+                if ((this.PluginIdField.Equals(value) != true))
+                {
+                    this.PluginIdField = value;
+                    this.RaisePropertyChanged("PluginId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="ResourcePermission", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class ResourcePermission : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid GrantedByUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid GrantedUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid ResourceIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid GrantedByUserId
+        {
+            get
+            {
+                return this.GrantedByUserIdField;
+            }
+            set
+            {
+                if ((this.GrantedByUserIdField.Equals(value) != true))
+                {
+                    this.GrantedByUserIdField = value;
+                    this.RaisePropertyChanged("GrantedByUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid GrantedUserId
+        {
+            get
+            {
+                return this.GrantedUserIdField;
+            }
+            set
+            {
+                if ((this.GrantedUserIdField.Equals(value) != true))
+                {
+                    this.GrantedUserIdField = value;
+                    this.RaisePropertyChanged("GrantedUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid ResourceId
+        {
+            get
+            {
+                return this.ResourceIdField;
+            }
+            set
+            {
+                if ((this.ResourceIdField.Equals(value) != true))
+                {
+                    this.ResourceIdField = value;
+                    this.RaisePropertyChanged("ResourceId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="NamedHiveItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Plugin))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Resource))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
+    public partial class NamedHiveItem : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DescriptionField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        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="Job", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Job : HeuristicLab.Clients.Hive.NamedHiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int CalculatingCountField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateCreatedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int FinishedCountField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int JobCountField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid OwnerUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string OwnerUsernameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.Permission PermissionField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string ResourceNamesField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int CalculatingCount
+        {
+            get
+            {
+                return this.CalculatingCountField;
+            }
+            set
+            {
+                if ((this.CalculatingCountField.Equals(value) != true))
+                {
+                    this.CalculatingCountField = value;
+                    this.RaisePropertyChanged("CalculatingCount");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime DateCreated
+        {
+            get
+            {
+                return this.DateCreatedField;
+            }
+            set
+            {
+                if ((this.DateCreatedField.Equals(value) != true))
+                {
+                    this.DateCreatedField = value;
+                    this.RaisePropertyChanged("DateCreated");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int FinishedCount
+        {
+            get
+            {
+                return this.FinishedCountField;
+            }
+            set
+            {
+                if ((this.FinishedCountField.Equals(value) != true))
+                {
+                    this.FinishedCountField = value;
+                    this.RaisePropertyChanged("FinishedCount");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int JobCount
+        {
+            get
+            {
+                return this.JobCountField;
+            }
+            set
+            {
+                if ((this.JobCountField.Equals(value) != true))
+                {
+                    this.JobCountField = value;
+                    this.RaisePropertyChanged("JobCount");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid OwnerUserId
+        {
+            get
+            {
+                return this.OwnerUserIdField;
+            }
+            set
+            {
+                if ((this.OwnerUserIdField.Equals(value) != true))
+                {
+                    this.OwnerUserIdField = value;
+                    this.RaisePropertyChanged("OwnerUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string OwnerUsername
+        {
+            get
+            {
+                return this.OwnerUsernameField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.OwnerUsernameField, value) != true))
+                {
+                    this.OwnerUsernameField = value;
+                    this.RaisePropertyChanged("OwnerUsername");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.Permission Permission
+        {
+            get
+            {
+                return this.PermissionField;
+            }
+            set
+            {
+                if ((this.PermissionField.Equals(value) != true))
+                {
+                    this.PermissionField = value;
+                    this.RaisePropertyChanged("Permission");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string ResourceNames
+        {
+            get
+            {
+                return this.ResourceNamesField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.ResourceNamesField, value) != true))
+                {
+                    this.ResourceNamesField = value;
+                    this.RaisePropertyChanged("ResourceNames");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Plugin", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Plugin : HeuristicLab.Clients.Hive.NamedHiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateCreatedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private byte[] HashField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid UserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Version VersionField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime DateCreated
+        {
+            get
+            {
+                return this.DateCreatedField;
+            }
+            set
+            {
+                if ((this.DateCreatedField.Equals(value) != true))
+                {
+                    this.DateCreatedField = value;
+                    this.RaisePropertyChanged("DateCreated");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public byte[] Hash
+        {
+            get
+            {
+                return this.HashField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.HashField, value) != true))
+                {
+                    this.HashField = value;
+                    this.RaisePropertyChanged("Hash");
+                }
+            }
+        }
+        
+        [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()]
+        public System.Version Version
+        {
+            get
+            {
+                return this.VersionField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.VersionField, value) != true))
+                {
+                    this.VersionField = value;
+                    this.RaisePropertyChanged("Version");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Resource", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
+    public partial class Resource : HeuristicLab.Clients.Hive.NamedHiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int HbIntervalField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> OwnerUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> ParentResourceIdField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int HbInterval
+        {
+            get
+            {
+                return this.HbIntervalField;
+            }
+            set
+            {
+                if ((this.HbIntervalField.Equals(value) != true))
+                {
+                    this.HbIntervalField = value;
+                    this.RaisePropertyChanged("HbInterval");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.Guid> OwnerUserId
+        {
+            get
+            {
+                return this.OwnerUserIdField;
+            }
+            set
+            {
+                if ((this.OwnerUserIdField.Equals(value) != true))
+                {
+                    this.OwnerUserIdField = value;
+                    this.RaisePropertyChanged("OwnerUserId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.Guid> ParentResourceId
+        {
+            get
+            {
+                return this.ParentResourceIdField;
+            }
+            set
+            {
+                if ((this.ParentResourceIdField.Equals(value) != true))
+                {
+                    this.ParentResourceIdField = value;
+                    this.RaisePropertyChanged("ParentResourceId");
+                }
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="SlaveGroup", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class SlaveGroup : HeuristicLab.Clients.Hive.Resource
+    {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Slave", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Slave : HeuristicLab.Clients.Hive.Resource
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<int> CoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.CpuArchitecture CpuArchitectureField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<int> CpuSpeedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private double CpuUtilizationField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<int> FreeCoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<int> FreeMemoryField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool IsAllowedToCalculateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<bool> IsDisposableField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.DateTime> LastHeartbeatField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<int> MemoryField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string OperatingSystemField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.SlaveState SlaveStateField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<int> Cores
+        {
+            get
+            {
+                return this.CoresField;
+            }
+            set
+            {
+                if ((this.CoresField.Equals(value) != true))
+                {
+                    this.CoresField = value;
+                    this.RaisePropertyChanged("Cores");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.CpuArchitecture CpuArchitecture
+        {
+            get
+            {
+                return this.CpuArchitectureField;
+            }
+            set
+            {
+                if ((this.CpuArchitectureField.Equals(value) != true))
+                {
+                    this.CpuArchitectureField = value;
+                    this.RaisePropertyChanged("CpuArchitecture");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<int> CpuSpeed
+        {
+            get
+            {
+                return this.CpuSpeedField;
+            }
+            set
+            {
+                if ((this.CpuSpeedField.Equals(value) != true))
+                {
+                    this.CpuSpeedField = value;
+                    this.RaisePropertyChanged("CpuSpeed");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public double CpuUtilization
+        {
+            get
+            {
+                return this.CpuUtilizationField;
+            }
+            set
+            {
+                if ((this.CpuUtilizationField.Equals(value) != true))
+                {
+                    this.CpuUtilizationField = value;
+                    this.RaisePropertyChanged("CpuUtilization");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<int> FreeCores
+        {
+            get
+            {
+                return this.FreeCoresField;
+            }
+            set
+            {
+                if ((this.FreeCoresField.Equals(value) != true))
+                {
+                    this.FreeCoresField = value;
+                    this.RaisePropertyChanged("FreeCores");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<int> FreeMemory
+        {
+            get
+            {
+                return this.FreeMemoryField;
+            }
+            set
+            {
+                if ((this.FreeMemoryField.Equals(value) != true))
+                {
+                    this.FreeMemoryField = value;
+                    this.RaisePropertyChanged("FreeMemory");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool IsAllowedToCalculate
+        {
+            get
+            {
+                return this.IsAllowedToCalculateField;
+            }
+            set
+            {
+                if ((this.IsAllowedToCalculateField.Equals(value) != true))
+                {
+                    this.IsAllowedToCalculateField = value;
+                    this.RaisePropertyChanged("IsAllowedToCalculate");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<bool> IsDisposable
+        {
+            get
+            {
+                return this.IsDisposableField;
+            }
+            set
+            {
+                if ((this.IsDisposableField.Equals(value) != true))
+                {
+                    this.IsDisposableField = value;
+                    this.RaisePropertyChanged("IsDisposable");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<System.DateTime> LastHeartbeat
+        {
+            get
+            {
+                return this.LastHeartbeatField;
+            }
+            set
+            {
+                if ((this.LastHeartbeatField.Equals(value) != true))
+                {
+                    this.LastHeartbeatField = value;
+                    this.RaisePropertyChanged("LastHeartbeat");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<int> Memory
+        {
+            get
+            {
+                return this.MemoryField;
+            }
+            set
+            {
+                if ((this.MemoryField.Equals(value) != true))
+                {
+                    this.MemoryField = value;
+                    this.RaisePropertyChanged("Memory");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string OperatingSystem
+        {
+            get
+            {
+                return this.OperatingSystemField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.OperatingSystemField, value) != true))
+                {
+                    this.OperatingSystemField = value;
+                    this.RaisePropertyChanged("OperatingSystem");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.SlaveState SlaveState
+        {
+            get
+            {
+                return this.SlaveStateField;
+            }
+            set
+            {
+                if ((this.SlaveStateField.Equals(value) != true))
+                {
+                    this.SlaveStateField = value;
+                    this.RaisePropertyChanged("SlaveState");
+                }
+            }
+        }
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="CpuArchitecture", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    public enum CpuArchitecture : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        x86 = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        x64 = 1,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="SlaveState", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    public enum SlaveState : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Idle = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Calculating = 1,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Offline = 2,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Command", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    public enum Command : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Stop = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Abort = 1,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Pause = 2,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="TaskState", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    public enum TaskState : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Offline = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Waiting = 1,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Transferring = 2,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Calculating = 3,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Paused = 4,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Finished = 5,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Aborted = 6,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Failed = 7,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="DowntimeType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataAccess")]
+    public enum DowntimeType : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Offline = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Shutdown = 1,
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="Permission", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    public enum Permission : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        NotAllowed = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Read = 1,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Full = 2,
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="TaskData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class TaskData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private byte[] DataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime LastUpdateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid TaskIdField;
+        
+        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 System.DateTime LastUpdate
+        {
+            get
+            {
+                return this.LastUpdateField;
+            }
+            set
+            {
+                if ((this.LastUpdateField.Equals(value) != true))
+                {
+                    this.LastUpdateField = value;
+                    this.RaisePropertyChanged("LastUpdate");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid TaskId
+        {
+            get
+            {
+                return this.TaskIdField;
+            }
+            set
+            {
+                if ((this.TaskIdField.Equals(value) != true))
+                {
+                    this.TaskIdField = value;
+                    this.RaisePropertyChanged("TaskId");
+                }
+            }
+        }
+        
+        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="Heartbeat", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.DataTransfer")]
+    [System.SerializableAttribute()]
+    public partial class Heartbeat : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool AssignJobField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private float CpuUtilizationField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int FreeCoresField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int FreeMemoryField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int HbIntervalField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.Dictionary<System.Guid, System.TimeSpan> JobProgressField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid SlaveIdField;
+        
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
+        {
+            get
+            {
+                return this.extensionDataField;
+            }
+            set
+            {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool AssignJob
+        {
+            get
+            {
+                return this.AssignJobField;
+            }
+            set
+            {
+                if ((this.AssignJobField.Equals(value) != true))
+                {
+                    this.AssignJobField = value;
+                    this.RaisePropertyChanged("AssignJob");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public float CpuUtilization
+        {
+            get
+            {
+                return this.CpuUtilizationField;
+            }
+            set
+            {
+                if ((this.CpuUtilizationField.Equals(value) != true))
+                {
+                    this.CpuUtilizationField = value;
+                    this.RaisePropertyChanged("CpuUtilization");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int FreeCores
+        {
+            get
+            {
+                return this.FreeCoresField;
+            }
+            set
+            {
+                if ((this.FreeCoresField.Equals(value) != true))
+                {
+                    this.FreeCoresField = value;
+                    this.RaisePropertyChanged("FreeCores");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int FreeMemory
+        {
+            get
+            {
+                return this.FreeMemoryField;
+            }
+            set
+            {
+                if ((this.FreeMemoryField.Equals(value) != true))
+                {
+                    this.FreeMemoryField = value;
+                    this.RaisePropertyChanged("FreeMemory");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int HbInterval
+        {
+            get
+            {
+                return this.HbIntervalField;
+            }
+            set
+            {
+                if ((this.HbIntervalField.Equals(value) != true))
+                {
+                    this.HbIntervalField = value;
+                    this.RaisePropertyChanged("HbInterval");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Collections.Generic.Dictionary<System.Guid, System.TimeSpan> JobProgress
+        {
+            get
+            {
+                return this.JobProgressField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.JobProgressField, value) != true))
+                {
+                    this.JobProgressField = value;
+                    this.RaisePropertyChanged("JobProgress");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid SlaveId
+        {
+            get
+            {
+                return this.SlaveIdField;
+            }
+            set
+            {
+                if ((this.SlaveIdField.Equals(value) != true))
+                {
+                    this.SlaveIdField = value;
+                    this.RaisePropertyChanged("SlaveId");
+                }
+            }
+        }
+        
+        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="MessageContainer", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
+    [System.SerializableAttribute()]
+    public partial class MessageContainer : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.MessageContainer.MessageType MessageField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid TaskIdField;
+        
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
+        {
+            get
+            {
+                return this.extensionDataField;
+            }
+            set
+            {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.MessageContainer.MessageType Message
+        {
+            get
+            {
+                return this.MessageField;
+            }
+            set
+            {
+                if ((this.MessageField.Equals(value) != true))
+                {
+                    this.MessageField = value;
+                    this.RaisePropertyChanged("Message");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid TaskId
+        {
+            get
+            {
+                return this.TaskIdField;
+            }
+            set
+            {
+                if ((this.TaskIdField.Equals(value) != true))
+                {
+                    this.TaskIdField = value;
+                    this.RaisePropertyChanged("TaskId");
+                }
+            }
+        }
+        
+        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.Runtime.Serialization", "4.0.0.0")]
+        [System.Runtime.Serialization.DataContractAttribute(Name="MessageContainer.MessageType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
+        public enum MessageType : int
+        {
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            CalculateTask = 0,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            StopTask = 1,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            StopAll = 2,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            AbortTask = 3,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            AbortAll = 4,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            PauseTask = 5,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            PauseAll = 6,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            Restart = 7,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            Sleep = 8,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            ShutdownSlave = 9,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            SayHello = 10,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            NewHBInterval = 11,
+            
+            [System.Runtime.Serialization.EnumMemberAttribute()]
+            ShutdownComputer = 12,
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="PluginAlreadyExistsFault", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
+    [System.SerializableAttribute()]
+    public partial class PluginAlreadyExistsFault : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid IdField;
+        
+        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");
+                }
+            }
+        }
+        
+        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.Hive.IHiveService")]
+    public interface IHiveService
+    {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetSlave", ReplyAction="http://tempuri.org/IHiveService/GetSlaveResponse")]
+        HeuristicLab.Clients.Hive.Slave GetSlave(System.Guid slaveId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetSlaveGroup", ReplyAction="http://tempuri.org/IHiveService/GetSlaveGroupResponse")]
+        HeuristicLab.Clients.Hive.SlaveGroup GetSlaveGroup(System.Guid slaveGroupId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetSlaves", ReplyAction="http://tempuri.org/IHiveService/GetSlavesResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Slave> GetSlaves();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetSlaveGroups", ReplyAction="http://tempuri.org/IHiveService/GetSlaveGroupsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveGroup> GetSlaveGroups();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateSlave", ReplyAction="http://tempuri.org/IHiveService/UpdateSlaveResponse")]
+        void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateSlaveGroup", ReplyAction="http://tempuri.org/IHiveService/UpdateSlaveGroupResponse")]
+        void UpdateSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteSlave", ReplyAction="http://tempuri.org/IHiveService/DeleteSlaveResponse")]
+        void DeleteSlave(System.Guid slaveId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteSlaveGroup", ReplyAction="http://tempuri.org/IHiveService/DeleteSlaveGroupResponse")]
+        void DeleteSlaveGroup(System.Guid slaveGroupId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddResourceToGroup", ReplyAction="http://tempuri.org/IHiveService/AddResourceToGroupResponse")]
+        void AddResourceToGroup(System.Guid slaveGroupId, System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/RemoveResourceFromGroup", ReplyAction="http://tempuri.org/IHiveService/RemoveResourceFromGroupResponse")]
+        void RemoveResourceFromGroup(System.Guid slaveGroupId, System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetResourceId", ReplyAction="http://tempuri.org/IHiveService/GetResourceIdResponse")]
+        System.Guid GetResourceId(string resourceName);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetTasksByResourceId", ReplyAction="http://tempuri.org/IHiveService/GetTasksByResourceIdResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasksByResourceId(System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/TriggerEventManager", ReplyAction="http://tempuri.org/IHiveService/TriggerEventManagerResponse")]
+        void TriggerEventManager(bool force);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetNewHeartbeatInterval", ReplyAction="http://tempuri.org/IHiveService/GetNewHeartbeatIntervalResponse")]
+        int GetNewHeartbeatInterval(System.Guid slaveId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddDowntime", ReplyAction="http://tempuri.org/IHiveService/AddDowntimeResponse")]
+        System.Guid AddDowntime(HeuristicLab.Clients.Hive.Downtime downtime);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteDowntime", ReplyAction="http://tempuri.org/IHiveService/DeleteDowntimeResponse")]
+        void DeleteDowntime(System.Guid downtimeId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateDowntime", ReplyAction="http://tempuri.org/IHiveService/UpdateDowntimeResponse")]
+        void UpdateDowntime(HeuristicLab.Clients.Hive.Downtime downtime);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetDowntimesForResource", ReplyAction="http://tempuri.org/IHiveService/GetDowntimesForResourceResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Downtime> GetDowntimesForResource(System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetUsernameByUserId", ReplyAction="http://tempuri.org/IHiveService/GetUsernameByUserIdResponse")]
+        string GetUsernameByUserId(System.Guid userId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetUserIdByUsername", ReplyAction="http://tempuri.org/IHiveService/GetUserIdByUsernameResponse")]
+        System.Guid GetUserIdByUsername(string username);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetUserPriorities", ReplyAction="http://tempuri.org/IHiveService/GetUserPrioritiesResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.UserPriority> GetUserPriorities();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetStatistics", ReplyAction="http://tempuri.org/IHiveService/GetStatisticsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Statistics> GetStatistics();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetStatisticsForTimePeriod", ReplyAction="http://tempuri.org/IHiveService/GetStatisticsForTimePeriodResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Statistics> GetStatisticsForTimePeriod(System.DateTime from, System.DateTime to);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddTask", ReplyAction="http://tempuri.org/IHiveService/AddTaskResponse")]
+        System.Guid AddTask(HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData, System.Collections.Generic.List<System.Guid> resourceIds);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddChildTask", ReplyAction="http://tempuri.org/IHiveService/AddChildTaskResponse")]
+        System.Guid AddChildTask(System.Guid parentTaskId, HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetTask", ReplyAction="http://tempuri.org/IHiveService/GetTaskResponse")]
+        HeuristicLab.Clients.Hive.Task GetTask(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetTasks", ReplyAction="http://tempuri.org/IHiveService/GetTasksResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasks();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightTasks", ReplyAction="http://tempuri.org/IHiveService/GetLightweightTasksResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightTasks(System.Collections.Generic.List<System.Guid> taskIds);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightChildTasks", ReplyAction="http://tempuri.org/IHiveService/GetLightweightChildTasksResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightChildTasks(System.Nullable<System.Guid> parentTaskId, bool recursive, bool includeParent);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightJobTasks", ReplyAction="http://tempuri.org/IHiveService/GetLightweightJobTasksResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasks(System.Guid jobId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightJobTasksWithoutStateLog", ReplyAction="http://tempuri.org/IHiveService/GetLightweightJobTasksWithoutStateLogResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasksWithoutStateLog(System.Guid jobId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetTaskData", ReplyAction="http://tempuri.org/IHiveService/GetTaskDataResponse")]
+        HeuristicLab.Clients.Hive.TaskData GetTaskData(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateTask", ReplyAction="http://tempuri.org/IHiveService/UpdateTaskResponse")]
+        void UpdateTask(HeuristicLab.Clients.Hive.Task taskDto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateTaskData", ReplyAction="http://tempuri.org/IHiveService/UpdateTaskDataResponse")]
+        void UpdateTaskData(HeuristicLab.Clients.Hive.Task taskDto, HeuristicLab.Clients.Hive.TaskData taskDataDto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteTask", ReplyAction="http://tempuri.org/IHiveService/DeleteTaskResponse")]
+        void DeleteTask(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteChildTasks", ReplyAction="http://tempuri.org/IHiveService/DeleteChildTasksResponse")]
+        void DeleteChildTasks(System.Guid parentTaskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateTaskState", ReplyAction="http://tempuri.org/IHiveService/UpdateTaskStateResponse")]
+        HeuristicLab.Clients.Hive.Task UpdateTaskState(System.Guid taskId, HeuristicLab.Clients.Hive.TaskState taskState, System.Nullable<System.Guid> slaveId, System.Nullable<System.Guid> userId, string exception);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/StopTask", ReplyAction="http://tempuri.org/IHiveService/StopTaskResponse")]
+        void StopTask(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/PauseTask", ReplyAction="http://tempuri.org/IHiveService/PauseTaskResponse")]
+        void PauseTask(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/RestartTask", ReplyAction="http://tempuri.org/IHiveService/RestartTaskResponse")]
+        void RestartTask(System.Guid taskId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJob", ReplyAction="http://tempuri.org/IHiveService/GetJobResponse")]
+        HeuristicLab.Clients.Hive.Job GetJob(System.Guid id);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobs", ReplyAction="http://tempuri.org/IHiveService/GetJobsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetAllJobs", ReplyAction="http://tempuri.org/IHiveService/GetAllJobsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetAllJobs();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddJob", ReplyAction="http://tempuri.org/IHiveService/AddJobResponse")]
+        System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateJob", ReplyAction="http://tempuri.org/IHiveService/UpdateJobResponse")]
+        void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteJob", ReplyAction="http://tempuri.org/IHiveService/DeleteJobResponse")]
+        void DeleteJob(System.Guid JobId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GrantPermission", ReplyAction="http://tempuri.org/IHiveService/GrantPermissionResponse")]
+        void GrantPermission(System.Guid jobId, System.Guid grantedUserId, HeuristicLab.Clients.Hive.Permission permission);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/RevokePermission", ReplyAction="http://tempuri.org/IHiveService/RevokePermissionResponse")]
+        void RevokePermission(System.Guid hiveExperimentId, System.Guid grantedUserId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobPermissions", ReplyAction="http://tempuri.org/IHiveService/GetJobPermissionsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.JobPermission> GetJobPermissions(System.Guid jobId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/IsAllowedPrivileged", ReplyAction="http://tempuri.org/IHiveService/IsAllowedPrivilegedResponse")]
+        bool IsAllowedPrivileged();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/Hello", ReplyAction="http://tempuri.org/IHiveService/HelloResponse")]
+        void Hello(HeuristicLab.Clients.Hive.Slave slave);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GoodBye", ReplyAction="http://tempuri.org/IHiveService/GoodByeResponse")]
+        void GoodBye(System.Guid slaveId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/Heartbeat", ReplyAction="http://tempuri.org/IHiveService/HeartbeatResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.MessageContainer> Heartbeat([System.ServiceModel.MessageParameterAttribute(Name="heartbeat")] HeuristicLab.Clients.Hive.Heartbeat heartbeat1);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetPlugin", ReplyAction="http://tempuri.org/IHiveService/GetPluginResponse")]
+        HeuristicLab.Clients.Hive.Plugin GetPlugin(System.Guid pluginId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetPluginByHash", ReplyAction="http://tempuri.org/IHiveService/GetPluginByHashResponse")]
+        HeuristicLab.Clients.Hive.Plugin GetPluginByHash(byte[] hash);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddPlugin", ReplyAction="http://tempuri.org/IHiveService/AddPluginResponse")]
+        [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.Hive.PluginAlreadyExistsFault), Action="http://tempuri.org/IHiveService/AddPluginPluginAlreadyExistsFaultFault", Name="PluginAlreadyExistsFault", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive")]
+        System.Guid AddPlugin(HeuristicLab.Clients.Hive.Plugin plugin, System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> pluginData);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetPlugins", ReplyAction="http://tempuri.org/IHiveService/GetPluginsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Plugin> GetPlugins();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetPluginDatas", ReplyAction="http://tempuri.org/IHiveService/GetPluginDatasResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> GetPluginDatas(System.Collections.Generic.List<System.Guid> pluginIds);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeletePlugin", ReplyAction="http://tempuri.org/IHiveService/DeletePluginResponse")]
+        void DeletePlugin(System.Guid pluginId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GrantResourcePermissions", ReplyAction="http://tempuri.org/IHiveService/GrantResourcePermissionsResponse")]
+        void GrantResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/RevokeResourcePermissions", ReplyAction="http://tempuri.org/IHiveService/RevokeResourcePermissionsResponse")]
+        void RevokeResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetResourcePermissions", ReplyAction="http://tempuri.org/IHiveService/GetResourcePermissionsResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.ResourcePermission> GetResourcePermissions(System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetChildResources", ReplyAction="http://tempuri.org/IHiveService/GetChildResourcesResponse")]
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Resource> GetChildResources(System.Guid resourceId);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddSlave", ReplyAction="http://tempuri.org/IHiveService/AddSlaveResponse")]
+        System.Guid AddSlave(HeuristicLab.Clients.Hive.Slave slave);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddSlaveGroup", ReplyAction="http://tempuri.org/IHiveService/AddSlaveGroupResponse")]
+        System.Guid AddSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup);
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public interface IHiveServiceChannel : HeuristicLab.Clients.Hive.IHiveService, System.ServiceModel.IClientChannel
+    {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public partial class HiveServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.Hive.IHiveService>, HeuristicLab.Clients.Hive.IHiveService
+    {
+        
+        public HiveServiceClient()
+        {
+        }
+        
+        public HiveServiceClient(string endpointConfigurationName) : 
+                base(endpointConfigurationName)
+        {
+        }
+        
+        public HiveServiceClient(string endpointConfigurationName, string remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress)
+        {
+        }
+        
+        public HiveServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress)
+        {
+        }
+        
+        public HiveServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(binding, remoteAddress)
+        {
+        }
+        
+        public HeuristicLab.Clients.Hive.Slave GetSlave(System.Guid slaveId)
+        {
+            return base.Channel.GetSlave(slaveId);
+        }
+        
+        public HeuristicLab.Clients.Hive.SlaveGroup GetSlaveGroup(System.Guid slaveGroupId)
+        {
+            return base.Channel.GetSlaveGroup(slaveGroupId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Slave> GetSlaves()
+        {
+            return base.Channel.GetSlaves();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.SlaveGroup> GetSlaveGroups()
+        {
+            return base.Channel.GetSlaveGroups();
+        }
+        
+        public void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave)
+        {
+            base.Channel.UpdateSlave(slave);
+        }
+        
+        public void UpdateSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup)
+        {
+            base.Channel.UpdateSlaveGroup(slaveGroup);
+        }
+        
+        public void DeleteSlave(System.Guid slaveId)
+        {
+            base.Channel.DeleteSlave(slaveId);
+        }
+        
+        public void DeleteSlaveGroup(System.Guid slaveGroupId)
+        {
+            base.Channel.DeleteSlaveGroup(slaveGroupId);
+        }
+        
+        public void AddResourceToGroup(System.Guid slaveGroupId, System.Guid resourceId)
+        {
+            base.Channel.AddResourceToGroup(slaveGroupId, resourceId);
+        }
+        
+        public void RemoveResourceFromGroup(System.Guid slaveGroupId, System.Guid resourceId)
+        {
+            base.Channel.RemoveResourceFromGroup(slaveGroupId, resourceId);
+        }
+        
+        public System.Guid GetResourceId(string resourceName)
+        {
+            return base.Channel.GetResourceId(resourceName);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasksByResourceId(System.Guid resourceId)
+        {
+            return base.Channel.GetTasksByResourceId(resourceId);
+        }
+        
+        public void TriggerEventManager(bool force)
+        {
+            base.Channel.TriggerEventManager(force);
+        }
+        
+        public int GetNewHeartbeatInterval(System.Guid slaveId)
+        {
+            return base.Channel.GetNewHeartbeatInterval(slaveId);
+        }
+        
+        public System.Guid AddDowntime(HeuristicLab.Clients.Hive.Downtime downtime)
+        {
+            return base.Channel.AddDowntime(downtime);
+        }
+        
+        public void DeleteDowntime(System.Guid downtimeId)
+        {
+            base.Channel.DeleteDowntime(downtimeId);
+        }
+        
+        public void UpdateDowntime(HeuristicLab.Clients.Hive.Downtime downtime)
+        {
+            base.Channel.UpdateDowntime(downtime);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Downtime> GetDowntimesForResource(System.Guid resourceId)
+        {
+            return base.Channel.GetDowntimesForResource(resourceId);
+        }
+        
+        public string GetUsernameByUserId(System.Guid userId)
+        {
+            return base.Channel.GetUsernameByUserId(userId);
+        }
+        
+        public System.Guid GetUserIdByUsername(string username)
+        {
+            return base.Channel.GetUserIdByUsername(username);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.UserPriority> GetUserPriorities()
+        {
+            return base.Channel.GetUserPriorities();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Statistics> GetStatistics()
+        {
+            return base.Channel.GetStatistics();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Statistics> GetStatisticsForTimePeriod(System.DateTime from, System.DateTime to)
+        {
+            return base.Channel.GetStatisticsForTimePeriod(from, to);
+        }
+        
+        public System.Guid AddTask(HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData, System.Collections.Generic.List<System.Guid> resourceIds)
+        {
+            return base.Channel.AddTask(task, taskData, resourceIds);
+        }
+        
+        public System.Guid AddChildTask(System.Guid parentTaskId, HeuristicLab.Clients.Hive.Task task, HeuristicLab.Clients.Hive.TaskData taskData)
+        {
+            return base.Channel.AddChildTask(parentTaskId, task, taskData);
+        }
+        
+        public HeuristicLab.Clients.Hive.Task GetTask(System.Guid taskId)
+        {
+            return base.Channel.GetTask(taskId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Task> GetTasks()
+        {
+            return base.Channel.GetTasks();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightTasks(System.Collections.Generic.List<System.Guid> taskIds)
+        {
+            return base.Channel.GetLightweightTasks(taskIds);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightChildTasks(System.Nullable<System.Guid> parentTaskId, bool recursive, bool includeParent)
+        {
+            return base.Channel.GetLightweightChildTasks(parentTaskId, recursive, includeParent);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasks(System.Guid jobId)
+        {
+            return base.Channel.GetLightweightJobTasks(jobId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightTask> GetLightweightJobTasksWithoutStateLog(System.Guid jobId)
+        {
+            return base.Channel.GetLightweightJobTasksWithoutStateLog(jobId);
+        }
+        
+        public HeuristicLab.Clients.Hive.TaskData GetTaskData(System.Guid taskId)
+        {
+            return base.Channel.GetTaskData(taskId);
+        }
+        
+        public void UpdateTask(HeuristicLab.Clients.Hive.Task taskDto)
+        {
+            base.Channel.UpdateTask(taskDto);
+        }
+        
+        public void UpdateTaskData(HeuristicLab.Clients.Hive.Task taskDto, HeuristicLab.Clients.Hive.TaskData taskDataDto)
+        {
+            base.Channel.UpdateTaskData(taskDto, taskDataDto);
+        }
+        
+        public void DeleteTask(System.Guid taskId)
+        {
+            base.Channel.DeleteTask(taskId);
+        }
+        
+        public void DeleteChildTasks(System.Guid parentTaskId)
+        {
+            base.Channel.DeleteChildTasks(parentTaskId);
+        }
+        
+        public HeuristicLab.Clients.Hive.Task UpdateTaskState(System.Guid taskId, HeuristicLab.Clients.Hive.TaskState taskState, System.Nullable<System.Guid> slaveId, System.Nullable<System.Guid> userId, string exception)
+        {
+            return base.Channel.UpdateTaskState(taskId, taskState, slaveId, userId, exception);
+        }
+        
+        public void StopTask(System.Guid taskId)
+        {
+            base.Channel.StopTask(taskId);
+        }
+        
+        public void PauseTask(System.Guid taskId)
+        {
+            base.Channel.PauseTask(taskId);
+        }
+        
+        public void RestartTask(System.Guid taskId)
+        {
+            base.Channel.RestartTask(taskId);
+        }
+        
+        public HeuristicLab.Clients.Hive.Job GetJob(System.Guid id)
+        {
+            return base.Channel.GetJob(id);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs()
+        {
+            return base.Channel.GetJobs();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetAllJobs()
+        {
+            return base.Channel.GetAllJobs();
+        }
+        
+        public System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto)
+        {
+            return base.Channel.AddJob(jobDto);
+        }
+        
+        public void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto)
+        {
+            base.Channel.UpdateJob(jobDto);
+        }
+        
+        public void DeleteJob(System.Guid JobId)
+        {
+            base.Channel.DeleteJob(JobId);
+        }
+        
+        public void GrantPermission(System.Guid jobId, System.Guid grantedUserId, HeuristicLab.Clients.Hive.Permission permission)
+        {
+            base.Channel.GrantPermission(jobId, grantedUserId, permission);
+        }
+        
+        public void RevokePermission(System.Guid hiveExperimentId, System.Guid grantedUserId)
+        {
+            base.Channel.RevokePermission(hiveExperimentId, grantedUserId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.JobPermission> GetJobPermissions(System.Guid jobId)
+        {
+            return base.Channel.GetJobPermissions(jobId);
+        }
+        
+        public bool IsAllowedPrivileged()
+        {
+            return base.Channel.IsAllowedPrivileged();
+        }
+        
+        public void Hello(HeuristicLab.Clients.Hive.Slave slave)
+        {
+            base.Channel.Hello(slave);
+        }
+        
+        public void GoodBye(System.Guid slaveId)
+        {
+            base.Channel.GoodBye(slaveId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.MessageContainer> Heartbeat(HeuristicLab.Clients.Hive.Heartbeat heartbeat1)
+        {
+            return base.Channel.Heartbeat(heartbeat1);
+        }
+        
+        public HeuristicLab.Clients.Hive.Plugin GetPlugin(System.Guid pluginId)
+        {
+            return base.Channel.GetPlugin(pluginId);
+        }
+        
+        public HeuristicLab.Clients.Hive.Plugin GetPluginByHash(byte[] hash)
+        {
+            return base.Channel.GetPluginByHash(hash);
+        }
+        
+        public System.Guid AddPlugin(HeuristicLab.Clients.Hive.Plugin plugin, System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> pluginData)
+        {
+            return base.Channel.AddPlugin(plugin, pluginData);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Plugin> GetPlugins()
+        {
+            return base.Channel.GetPlugins();
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.PluginData> GetPluginDatas(System.Collections.Generic.List<System.Guid> pluginIds)
+        {
+            return base.Channel.GetPluginDatas(pluginIds);
+        }
+        
+        public void DeletePlugin(System.Guid pluginId)
+        {
+            base.Channel.DeletePlugin(pluginId);
+        }
+        
+        public void GrantResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds)
+        {
+            base.Channel.GrantResourcePermissions(resourceId, grantedUserIds);
+        }
+        
+        public void RevokeResourcePermissions(System.Guid resourceId, System.Collections.Generic.List<System.Guid> grantedUserIds)
+        {
+            base.Channel.RevokeResourcePermissions(resourceId, grantedUserIds);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.ResourcePermission> GetResourcePermissions(System.Guid resourceId)
+        {
+            return base.Channel.GetResourcePermissions(resourceId);
+        }
+        
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Resource> GetChildResources(System.Guid resourceId)
+        {
+            return base.Channel.GetChildResources(resourceId);
+        }
+        
+        public System.Guid AddSlave(HeuristicLab.Clients.Hive.Slave slave)
+        {
+            return base.Channel.AddSlave(slave);
+        }
+        
+        public System.Guid AddSlaveGroup(HeuristicLab.Clients.Hive.SlaveGroup slaveGroup)
+        {
+            return base.Channel.AddSlaveGroup(slaveGroup);
+        }
+    }
 }
Index: branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveDao.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9202)
@@ -71,4 +71,26 @@
     }
 
+    public IEnumerable<DT.LightweightTask> GetLightweightTasksWithoutStateLog(Expression<Func<Task, bool>> predicate) {
+      List<DT.LightweightTask> tasks = new List<DT.LightweightTask>();
+
+      using (var db = CreateContext()) {
+        var tasksQuery = db.Tasks.Where(predicate).Select(task => new { task.TaskId, task.ExecutionTimeMs, task.ParentTaskId, task.State, task.Command });
+        var taskDatasQuery = db.Tasks.Where(predicate).Where(task => task.JobData != null).Select(task => new { task.TaskId, task.JobData.LastUpdate });
+
+        foreach (var task in tasksQuery) {
+          DT.LightweightTask t = new DT.LightweightTask();
+          t.Id = task.TaskId;
+          t.ExecutionTime = TimeSpan.FromMilliseconds(task.ExecutionTimeMs);
+          t.ParentTaskId = task.ParentTaskId;
+          t.StateLog = new List<DT.StateLog>();
+          t.State = DataTransfer.Convert.ToDto(task.State);
+          t.Command = DataTransfer.Convert.ToDto(task.Command);
+          t.LastTaskDataUpdate = taskDatasQuery.Where(x => x.TaskId == task.TaskId).Count() > 0 ? taskDatasQuery.Select(x => x.LastUpdate).First() : DateTime.MinValue;
+          tasks.Add(t);
+        }
+      }
+      return tasks;
+    }
+
     public Guid AddTask(DT.Task dto) {
       using (var db = CreateContext()) {
Index: branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveService.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/HiveService.cs	(revision 9202)
@@ -129,4 +129,13 @@
       return trans.UseTransaction(() => {
         return dao.GetLightweightTasks(task => task.JobId == jobId).ToArray();
+      }, false, true);
+    }
+
+    public IEnumerable<LightweightTask> GetLightweightJobTasksWithoutStateLog(Guid jobId) {
+      authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
+      author.AuthorizeForJob(jobId, Permission.Read);
+
+      return trans.UseTransaction(() => {
+        return dao.GetLightweightTasksWithoutStateLog(task => task.JobId == jobId).ToArray();
       }, false, false);
     }
Index: branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/Interfaces/IHiveDao.cs	(revision 9202)
@@ -32,4 +32,5 @@
     IEnumerable<DT.Task> GetTasks(Expression<Func<Task, bool>> predicate);
     IEnumerable<DT.LightweightTask> GetLightweightTasks(Expression<Func<Task, bool>> predicate);
+    IEnumerable<DT.LightweightTask> GetLightweightTasksWithoutStateLog(Expression<Func<Task, bool>> predicate);
     Guid AddTask(DT.Task dto);
     void UpdateTaskAndPlugins(DT.Task dto);
Index: branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs
===================================================================
--- branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 9201)
+++ branches/UnloadJobs/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs	(revision 9202)
@@ -53,4 +53,7 @@
 
     [OperationContract]
+    IEnumerable<LightweightTask> GetLightweightJobTasksWithoutStateLog(Guid jobId);
+
+    [OperationContract]
     TaskData GetTaskData(Guid taskId);
 
