Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj	(revision 5599)
@@ -9,5 +9,5 @@
     <OutputType>Exe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave.ConsoleClient</RootNamespace>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore.ConsoleClient</RootNamespace>
     <AssemblyName>HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs	(revision 5599)
@@ -22,8 +22,8 @@
 using System;
 using System.Threading;
-using HeuristicLab.Clients.Hive.Slave.Tests;
+using HeuristicLab.Clients.Hive.SlaveCore.Tests;
 
 
-namespace HeuristicLab.Clients.Hive.Slave.ConsoleClient {
+namespace HeuristicLab.Clients.Hive.SlaveCore.ConsoleClient {
   public class Program {
     static void Main(string[] args) {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_ascheibe.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_ascheibe.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_ascheibe.config	(revision 5599)
@@ -17,6 +17,6 @@
     
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
       </service>
     </services>
@@ -27,5 +27,5 @@
               binding="wsHttpBinding" 
               bindingConfiguration="wsHttpBinding" 
-              contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" 
+              contract="HeuristicLab.Clients.Hive.IHiveService" 
               name="wsHttpBinding_IHiveService">
               <identity>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_services.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_services.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app_services.config	(revision 5599)
@@ -17,6 +17,6 @@
     
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
       </service>
     </services>
@@ -26,5 +26,5 @@
               binding="wsHttpBinding" 
               bindingConfiguration="wsHttpBinding" 
-              contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" 
+              contract="HeuristicLab.Clients.Hive.IHiveService" 
               name="wsHttpBinding_IHiveService">
       <identity>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.csproj	(revision 5599)
@@ -9,5 +9,5 @@
     <OutputType>WinExe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon</RootNamespace>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon</RootNamespace>
     <AssemblyName>HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.Designer.cs	(revision 5599)
@@ -1,4 +1,4 @@
 ﻿
-namespace HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon {
   partial class MainWindow {
     /// <summary>
@@ -31,5 +31,5 @@
       this.showToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.slaveView = new HeuristicLab.Clients.Hive.Slave.Views.SlaveView();
+      this.slaveView = new HeuristicLab.Clients.Hive.SlaveCore.Views.SlaveView();
       this.contextMenuNotifyIcon.SuspendLayout();
       this.SuspendLayout();
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/MainWindow.cs	(revision 5599)
@@ -1,7 +1,7 @@
 ﻿using System;
 using System.Windows.Forms;
-using HeuristicLab.Clients.Hive.Slave.Views;
+using HeuristicLab.Clients.Hive.SlaveCore.Views;
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon {
   public partial class MainWindow : Form {
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Program.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Program.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Program.cs	(revision 5599)
@@ -1,7 +1,7 @@
 ﻿using System;
 using System.Windows.Forms;
-using HeuristicLab.Clients.Hive.Slave.Views;
+using HeuristicLab.Clients.Hive.SlaveCore.Views;
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon {
   static class Program {
     /// <summary>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Resources.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Resources.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Resources.Designer.cs	(revision 5599)
@@ -9,5 +9,5 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.Properties {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon.Properties {
     using System;
     
@@ -40,5 +40,5 @@
             get {
                 if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.Properties.Resources", typeof(Resources).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                 }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Settings.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Settings.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon/Properties/Settings.Designer.cs	(revision 5599)
@@ -9,5 +9,5 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.Properties {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveTrayIcon.Properties {
     
     
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.csproj	(revision 5599)
@@ -9,5 +9,5 @@
     <OutputType>WinExe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave.SlaveWindowsService</RootNamespace>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService</RootNamespace>
     <AssemblyName>HeuristicLab.Clients.Hive.Slave.SlaveWindowsService</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
@@ -50,5 +50,5 @@
   </PropertyGroup>
   <PropertyGroup>
-    <StartupObject>HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.Program</StartupObject>
+    <StartupObject>HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService.Program</StartupObject>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Program.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Program.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Program.cs	(revision 5599)
@@ -22,5 +22,5 @@
 using System.ServiceProcess;
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveWindowsService {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService {
   static class Program {
     /// <summary>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.Designer.cs	(revision 5599)
@@ -1,3 +1,3 @@
-﻿namespace HeuristicLab.Clients.Hive.Slave.SlaveWindowsService {
+﻿namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService {
   partial class ProjectInstaller {
     /// <summary>
@@ -37,5 +37,5 @@
       // serviceInstaller1
       // 
-      this.serviceInstaller1.ServiceName = "HeuristicLab.Clients.Hive.Slave.SlaveWindowsService";
+      this.serviceInstaller1.ServiceName = "HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService";
       this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
       // 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/ProjectInstaller.cs	(revision 5599)
@@ -7,5 +7,5 @@
 
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveWindowsService {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService {
   [RunInstaller(true)]
   public partial class ProjectInstaller : System.Configuration.Install.Installer {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Properties/AssemblyInfo.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Properties/AssemblyInfo.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/Properties/AssemblyInfo.cs	(revision 5599)
@@ -1,4 +1,3 @@
 ﻿using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
@@ -6,9 +5,9 @@
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("HeuristicLab.Clients.Hive.Slave.SlaveWindowsService")]
+[assembly: AssemblyTitle("HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("HeuristicLab.Clients.Hive.Slave.SlaveWindowsService")]
+[assembly: AssemblyProduct("HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService")]
 [assembly: AssemblyCopyright("Copyright ©  2011")]
 [assembly: AssemblyTrademark("")]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.Designer.cs	(revision 5599)
@@ -1,3 +1,3 @@
-﻿namespace HeuristicLab.Clients.Hive.Slave.SlaveWindowsService {
+﻿namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService {
   partial class SlaveWindowsService {
     /// <summary> 
@@ -29,5 +29,5 @@
       // SlaveWindowsService
       // 
-      this.ServiceName = "HeuristicLab.Clients.Hive.Slave.SlaveWindowsService";
+      this.ServiceName = "HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService";
       ((System.ComponentModel.ISupportInitialize)(this.eventLog)).EndInit();
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsService/SlaveWindowsService.cs	(revision 5599)
@@ -21,7 +21,7 @@
 using System.ServiceProcess;
 using System.Threading;
-using HeuristicLab.Clients.Hive.Slave;
+using HeuristicLab.Clients.Hive.SlaveCore;
 
-namespace HeuristicLab.Clients.Hive.Slave.SlaveWindowsService {
+namespace HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService {
   public partial class SlaveWindowsService : ServiceBase {
     private Core core;
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup.vdproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup.vdproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup/HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup.vdproj	(revision 5599)
@@ -604,5 +604,5 @@
         "IsDebugOnly" = "11:TRUE"
         "IsReleaseOnly" = "11:FALSE"
-        "OutputFilename" = "8:Debug\\HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup.msi"
+        "OutputFilename" = "8:Debug\\HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsServiceSetup.msi"
         "PackageFilesAs" = "3:2"
         "PackageFileSize" = "3:-2147483648"
@@ -620,5 +620,5 @@
         "IsDebugOnly" = "11:FALSE"
         "IsReleaseOnly" = "11:TRUE"
-        "OutputFilename" = "8:Release\\HeuristicLab.Clients.Hive.Slave.SlaveWindowsServiceSetup.msi"
+        "OutputFilename" = "8:Release\\HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsServiceSetup.msi"
         "PackageFilesAs" = "3:2"
         "PackageFileSize" = "3:-2147483648"
@@ -638,5 +638,5 @@
             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_96A6A0924F6E4EB3A650D99CE94D954B"
             {
-            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.Slave.SlaveWindowsService (Active)"
+            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService (Active)"
             "Condition" = "8:"
             "Object" = "8:_3C881D08A42747949E7F0009E1EB3D51"
@@ -652,5 +652,5 @@
             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_BA4B4CE24A6A4AF5B9E15838A4E3A2DA"
             {
-            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.Slave.SlaveWindowsService (Active)"
+            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService (Active)"
             "Condition" = "8:"
             "Object" = "8:_3C881D08A42747949E7F0009E1EB3D51"
@@ -666,5 +666,5 @@
             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_C2F6EA990E7941F59D7AD9AA5FCAB55A"
             {
-            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.Slave.SlaveWindowsService (Active)"
+            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService (Active)"
             "Condition" = "8:"
             "Object" = "8:_3C881D08A42747949E7F0009E1EB3D51"
@@ -680,5 +680,5 @@
             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_E2BB909F6F6A4711B13203453A733532"
             {
-            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.Slave.SlaveWindowsService (Active)"
+            "Name" = "8:Primary output from HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService (Active)"
             "Condition" = "8:"
             "Object" = "8:_3C881D08A42747949E7F0009E1EB3D51"
@@ -1820,5 +1820,5 @@
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3C881D08A42747949E7F0009E1EB3D51"
             {
-            "SourcePath" = "8:..\\HeuristicLab.Clients.Hive.Slave.SlaveWindowsService\\obj\\Debug\\HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.exe"
+            "SourcePath" = "8:..\\HeuristicLab.Clients.Hive.Slave.SlaveWindowsService\\obj\\Debug\\HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService.exe"
             "TargetName" = "8:"
             "Tag" = "8:"
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/HeuristicLab.Clients.Hive.Slave.Tests-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/HeuristicLab.Clients.Hive.Slave.Tests-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/HeuristicLab.Clients.Hive.Slave.Tests-3.4.csproj	(revision 5599)
@@ -10,5 +10,5 @@
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave.Tests</RootNamespace>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore.Tests</RootNamespace>
     <AssemblyName>HeuristicLab.Clients.Hive.Slave.Tests-3.4</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
@@ -330,4 +330,5 @@
     </Reference>
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.ServiceModel" />
     <Reference Include="WeifenLuo.WinFormsUI.Docking-2.3.1">
@@ -362,8 +363,4 @@
       <Name>HeuristicLab.Hive-3.4</Name>
     </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Services.Hive.Common\3.4\HeuristicLab.Services.Hive.Common-3.4.csproj">
-      <Project>{14424A16-48D4-445E-80BF-DDF617548BBB}</Project>
-      <Name>HeuristicLab.Services.Hive.Common-3.4</Name>
-    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.Services.Hive\3.4\HeuristicLab.Services.Hive-3.4.csproj">
       <Project>{CF9DA321-AC1B-4FD3-9EC3-67BC6B861BDE}</Project>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs	(revision 5599)
@@ -26,17 +26,14 @@
 using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.PluginInfrastructure.Manager;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
-
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
   internal class MockHiveService : IHiveService {
     private static List<Job> jobs;
     private static List<JobData> jobDatas;
-    private static List<HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment> hiveExperiments;
+    private static List<HiveExperiment> hiveExperiments;
     private static List<Plugin> plugins = null;
     public List<Job> ResultJobs { get; set; }
     public List<JobData> ResultJobDatas { get; set; }
-    private static IEnumerable<PluginDescription> pDescs = null;
+    private static List<PluginDescription> pDescs = null;
     private static int cnt = 0;
 
@@ -82,6 +79,6 @@
       }
 
-      hiveExperiments = new List<HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment>();
-      hiveExperiments.Add(new HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment() { Id = Guid.NewGuid(), Name = "Hive Exp 1", Description = "", RootJobId = jobs[0].Id });
+      hiveExperiments = new List<HiveExperiment>();
+      hiveExperiments.Add(new HiveExperiment() { Id = Guid.NewGuid(), Name = "Hive Exp 1", Description = "", RootJobId = jobs[0].Id });
 
       ResultJobDatas = new List<JobData>();
@@ -92,5 +89,5 @@
       PluginManager pm = new PluginManager(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PluginCacheServer"));
       pm.DiscoverAndCheckPlugins();
-      pDescs = pm.Plugins;
+      pDescs = pm.Plugins.ToList();
       plugins = new List<Plugin>();
       foreach (PluginDescription d in pDescs) {
@@ -106,5 +103,5 @@
 
     #region Job Methods
-    public Guid AddJob(Job job, JobData jobData, IEnumerable<Guid> slaveGroupIds) {
+    public Guid AddJob(Job job, JobData jobData, List<Guid> slaveGroupIds) {
       job.Id = Guid.NewGuid();
       jobData.JobId = job.Id;
@@ -136,14 +133,14 @@
     }
 
-    public IEnumerable<Job> GetJobs() {
+    public List<Job> GetJobs() {
       return jobs;
     }
 
-    public IEnumerable<LightweightJob> GetLightweightJobs(IEnumerable<Guid> jobIds) {
-      return jobs.Select(j => new LightweightJob(j)); // not real
-    }
-
-    public IEnumerable<LightweightJob> GetLightweightChildJobs(Guid? parentJobId, bool recursive, bool includeParent) {
-      return jobs.Where(j => j.ParentJobId.HasValue).Select(j => new LightweightJob(j));
+    public List<LightweightJob> GetLightweightJobs(List<Guid> jobIds) {
+      return jobs.Select(j => new LightweightJob(j)).ToList(); // not real
+    }
+
+    public List<LightweightJob> GetLightweightChildJobs(Guid? parentJobId, bool recursive, bool includeParent) {
+      return jobs.Where(j => j.ParentJobId.HasValue).Select(j => new LightweightJob(j)).ToList();
     }
 
@@ -196,13 +193,13 @@
 
     #region HiveExperiment Methods
-    public HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment GetHiveExperiment(Guid id) {
+    public HiveExperiment GetHiveExperiment(Guid id) {
       return hiveExperiments.Where(he => he.Id == id).SingleOrDefault();
     }
 
-    public IEnumerable<HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment> GetHiveExperiments() {
+    public List<HiveExperiment> GetHiveExperiments() {
       return hiveExperiments;
     }
 
-    public Guid AddHiveExperiment(HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment hiveExperimentDto) {
+    public Guid AddHiveExperiment(HiveExperiment hiveExperimentDto) {
       hiveExperimentDto.Id = Guid.NewGuid();
       hiveExperiments.Add(hiveExperimentDto);
@@ -210,5 +207,5 @@
     }
 
-    public void UpdateHiveExperiment(HeuristicLab.Services.Hive.Common.DataTransfer.HiveExperiment hiveExperimentDto) {
+    public void UpdateHiveExperiment(HiveExperiment hiveExperimentDto) {
       // do nothing
     }
@@ -220,5 +217,5 @@
 
     #region Login Methods
-    public void Hello(HeuristicLab.Services.Hive.Common.DataTransfer.Slave slaveInfo) {
+    public void Hello(Slave slaveInfo) {
       // do nothing
     }
@@ -257,5 +254,5 @@
     }
 
-    public IEnumerable<Plugin> GetPlugins() {
+    public List<Plugin> GetPlugins() {
       if (plugins == null)
         plugins = ReadPluginsFromServerCache();
@@ -263,5 +260,5 @@
     }
 
-    public IEnumerable<PluginData> GetPluginDatas(List<Guid> pluginIds) {
+    public List<PluginData> GetPluginDatas(List<Guid> pluginIds) {
       List<PluginData> pluginDatas = new List<PluginData>();
 
@@ -286,5 +283,5 @@
 
     #region Slave Methods
-    public Guid AddSlave(Services.Hive.Common.DataTransfer.Slave slave) {
+    public Guid AddSlave(Slave slave) {
       throw new NotImplementedException();
     }
@@ -294,5 +291,5 @@
     }
 
-    public Services.Hive.Common.DataTransfer.Slave GetSlave(Guid slaveId) {
+    public Slave GetSlave(Guid slaveId) {
       throw new NotImplementedException();
     }
@@ -302,13 +299,13 @@
     }
 
-    public IEnumerable<Services.Hive.Common.DataTransfer.Slave> GetSlaves() {
-      throw new NotImplementedException();
-    }
-
-    public IEnumerable<SlaveGroup> GetSlaveGroups() {
-      throw new NotImplementedException();
-    }
-
-    public void UpdateSlave(Services.Hive.Common.DataTransfer.Slave slave) {
+    public List<Slave> GetSlaves() {
+      throw new NotImplementedException();
+    }
+
+    public List<SlaveGroup> GetSlaveGroups() {
+      throw new NotImplementedException();
+    }
+
+    public void UpdateSlave(Slave slave) {
       throw new NotImplementedException();
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs	(revision 5599)
@@ -29,5 +29,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
   [Item("Mock Job", "Represents mocked Job which just SpinWaits.")]
   [StorableClass]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs	(revision 5599)
@@ -21,7 +21,6 @@
 
 using System;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
   public class MockServiceLocator : IServiceLocator {
     private MockHiveService service;
@@ -38,5 +37,5 @@
       set { password = value; }
     }
-    
+
     public IHiveService GetService() {
       if (service == null)
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs	(revision 5599)
@@ -27,5 +27,5 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
   internal static class PluginLoader {
     public const string AssemblyExtension = ".dll";
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveCommListener.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveCommListener.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveCommListener.cs	(revision 5599)
@@ -22,7 +22,7 @@
 using System;
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
 
   /// <summary>
@@ -50,5 +50,5 @@
     }
 
-    public void OnStatusChanged(Slave.StatusCommons status) {
+    public void OnStatusChanged(SlaveCore.StatusCommons status) {
       System.Console.WriteLine("SlaveCommListener: " + status);
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs	(revision 5599)
@@ -23,9 +23,7 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 
-namespace HeuristicLab.Clients.Hive.Slave.Tests {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Tests {
   [TestClass]
   public class SlaveTest {
@@ -85,5 +83,5 @@
         ((MockHiveService)service).updateJobs(jobList, job);
 
-        HeuristicLab.Clients.Hive.Slave.Core core = new Slave.Core();
+        HeuristicLab.Clients.Hive.SlaveCore.Core core = new SlaveCore.Core();
         core.Start();
 
@@ -124,5 +122,5 @@
 
 
-        HeuristicLab.Clients.Hive.Slave.Core core = new Slave.Core();
+        HeuristicLab.Clients.Hive.SlaveCore.Core core = new SlaveCore.Core();
         core.Start();
       });
@@ -188,5 +186,5 @@
 
 
-        HeuristicLab.Clients.Hive.Slave.Core core = new Slave.Core();
+        HeuristicLab.Clients.Hive.SlaveCore.Core core = new SlaveCore.Core();
         core.Start();
         Assert.AreEqual<int>(2, ms.ResultJobs.Count);
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/app.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/app.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/app.config	(revision 5599)
@@ -4,6 +4,7 @@
   <system.serviceModel>
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom"
+          binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication" />
       </service>
     </services>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj	(revision 5599)
@@ -9,5 +9,5 @@
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave.Views</RootNamespace>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore.Views</RootNamespace>
     <AssemblyName>HeuristicLab.Clients.Hive.Slave.Views-3.4</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLabClientsHiveSlaveViewsPlugin.cs.frame
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLabClientsHiveSlaveViewsPlugin.cs.frame	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/HeuristicLabClientsHiveSlaveViewsPlugin.cs.frame	(revision 5599)
@@ -32,5 +32,5 @@
   [PluginDependency("HeuristicLab.Core", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  [PluginDependency("HeuristicLab.Clients.Hive.Slave", "3.4")]
+  [PluginDependency("HeuristicLab.Clients.Hive.SlaveCore", "3.4")]
   public class HeuristicLabClientsHiveSlaveViewsPlugin : PluginBase {
   }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveItem.cs	(revision 5599)
@@ -22,9 +22,9 @@
 using System;
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
 
-namespace HeuristicLab.Clients.Hive.Slave.Views {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Views {
 
   [CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.Designer.cs	(revision 5599)
@@ -20,5 +20,5 @@
 #endregion
 
-namespace HeuristicLab.Clients.Hive.Slave.Views {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Views {
   partial class SlaveView {
     /// <summary> 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs	(revision 5599)
@@ -26,5 +26,5 @@
 
 
-namespace HeuristicLab.Clients.Hive.Slave.Views {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Views {
 
   [View("HeuristicLab Slave View")]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ConfigManager.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ConfigManager.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ConfigManager.cs	(revision 5599)
@@ -24,9 +24,8 @@
 using System.Diagnostics;
 using System.Management;
-using HeuristicLab.Clients.Hive.Slave.Properties;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
+using HeuristicLab.Clients.Hive.SlaveCore.Properties;
 
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   /// <summary>
   /// accesses the Server and sends his data (uuid, uptimes, hardware config) 
@@ -44,5 +43,5 @@
 
     public Core Core { get; set; }
-    private HeuristicLab.Services.Hive.Common.DataTransfer.Slave slave;
+    private Slave slave;
 
     /// <summary>
@@ -50,5 +49,5 @@
     /// </summary>
     private ConfigManager() {
-      slave = new HeuristicLab.Services.Hive.Common.DataTransfer.Slave();
+      slave = new Slave();
       slave.Id = GetUniqueMachineId();
       slave.Name = Environment.MachineName;
@@ -65,5 +64,5 @@
     /// </summary>
     /// <returns>the ClientInfo object</returns>
-    public HeuristicLab.Services.Hive.Common.DataTransfer.Slave GetClientInfo() {
+    public Slave GetClientInfo() {
       //TODO: how to display connectedsince in gui?
       //hardwareInfo.Login = WcfService.Instance.ConnectedSince;
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs	(revision 5599)
@@ -26,12 +26,11 @@
 using System.ServiceModel;
 using System.Threading;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-
-
-namespace HeuristicLab.Clients.Hive.Slave {
+
+
+
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   /// <summary>
   /// The core component of the Hive Client
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs	(revision 5599)
@@ -22,12 +22,12 @@
 using System;
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
 
   [CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
   internal class DummyListener : ISlaveCommunicationCallbacks {
 
-    public void OnStatusChanged(Slave.StatusCommons status) {
+    public void OnStatusChanged(SlaveCore.StatusCommons status) {
       throw new NotImplementedException("Dummy Listener, don't subscribe it!");
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Executor.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Executor.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Executor.cs	(revision 5599)
@@ -27,8 +27,7 @@
 using HeuristicLab.Hive;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   public class Executor : MarshalByRefObject, IDisposable {
     public Guid JobId { get; set; }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ExecutorMessageContainer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ExecutorMessageContainer.cs	(revision 5597)
+++ 	(revision )
@@ -1,59 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Services.Hive.Common {
-  /// <summary>
-  /// This class is used to communicate from the executor to the core, e.g. 
-  /// if the appdomain should be killed
-  /// </summary>
-  [StorableClass]
-  [Serializable]
-  public class ExecutorMessageContainer<CallbackParameterType> : MessageContainer {
-
-    [Storable]
-    public Action<CallbackParameterType> Callback;
-    public CallbackParameterType CallbackParameter;
-
-    public ExecutorMessageContainer() : base() { }
-
-    public ExecutorMessageContainer(MessageType message, Guid parentJobId, Action<CallbackParameterType> callback)
-      : base(message, parentJobId) {
-      this.Callback = callback;
-    }
-
-    protected ExecutorMessageContainer(ExecutorMessageContainer<CallbackParameterType> original, Cloner cloner)
-      : base(original, cloner) {
-      this.Callback = original.Callback;
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ExecutorMessageContainer<CallbackParameterType>(this, cloner);
-    }
-
-    public void execute() {
-      Callback(CallbackParameter);
-    }    
-  }      
-}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs	(revision 5599)
@@ -24,8 +24,6 @@
 using System.Threading;
 using HeuristicLab.Common;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   /// <summary>
   /// Heartbeat class. It sends every x ms a heartbeat to the server and receives a Message
@@ -87,5 +85,5 @@
             }
             if (wcfService.ConnState == NetworkEnum.WcfConnState.Connected) {
-              HeuristicLab.Services.Hive.Common.DataTransfer.Slave info = ConfigManager.Instance.GetClientInfo();
+              Slave info = ConfigManager.Instance.GetClientInfo();
 
               Heartbeat heartBeatData = new Heartbeat {
@@ -103,9 +101,9 @@
                 SlaveClientCom.Instance.ClientCom.LogMessage("Error getting response from Heartbeat");
                 OnExceptionOccured(new Exception("Error getting response from Heartbeat"));
+              } else {
+                SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Response received: ");
+                msgs.ForEach(mc => SlaveClientCom.Instance.ClientCom.LogMessage(mc.Message.ToString()));
+                msgs.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc));
               }
-
-              SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Response received: ");
-              msgs.ForEach(mc => SlaveClientCom.Instance.ClientCom.LogMessage(mc.Message.ToString()));
-              msgs.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc));
             }
           }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj	(revision 5599)
@@ -9,6 +9,6 @@
     <OutputType>Library</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>HeuristicLab.Clients.Hive.Slave</RootNamespace>
-    <AssemblyName>HeuristicLab.Clients.Hive.Slave-3.4</AssemblyName>
+    <RootNamespace>HeuristicLab.Clients.Hive.SlaveCore</RootNamespace>
+    <AssemblyName>HeuristicLab.Clients.Hive.SlaveCore-3.4</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
@@ -108,5 +108,4 @@
       <SubType>Code</SubType>
     </Compile>
-    <Compile Include="ExecutorMessageContainer.cs" />
     <Compile Include="MessageQueue.cs" />
     <Compile Include="NetworkEnum.cs" />
@@ -149,8 +148,4 @@
       <Name>HeuristicLab.Hive-3.4</Name>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Services.Hive.Common\3.4\HeuristicLab.Services.Hive.Common-3.4.csproj">
-      <Project>{14424A16-48D4-445E-80BF-DDF617548BBB}</Project>
-      <Name>HeuristicLab.Services.Hive.Common-3.4</Name>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLabClientsHiveSlavePlugin.cs.frame
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLabClientsHiveSlavePlugin.cs.frame	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLabClientsHiveSlavePlugin.cs.frame	(revision 5599)
@@ -5,7 +5,7 @@
 using HeuristicLab.PluginInfrastructure;
 
-namespace HeuristicLab.Clients.Hive.Slave {
-  [Plugin("HeuristicLab.Clients.Hive.Slave", "3.4.0.$WCREV$")]
-  [PluginFile("HeuristicLab.Clients.Hive.Slave-3.4.dll", PluginFileType.Assembly)]
+namespace HeuristicLab.Clients.Hive.SlaveCore {
+  [Plugin("HeuristicLab.Clients.Hive.SlaveCore", "3.4.0.$WCREV$")]
+  [PluginFile("HeuristicLab.Clients.Hive.SlaveCore-3.4.dll", PluginFileType.Assembly)]
   [PluginDependency("HeuristicLab.Common", "3.3")]
   [PluginDependency("HeuristicLab.Core", "3.3")]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/InvalidStateException.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/InvalidStateException.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/InvalidStateException.cs	(revision 5599)
@@ -22,5 +22,5 @@
 using System;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   [global::System.Serializable]
   public class InvalidStateException : Exception {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/JobStatus.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/JobStatus.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/JobStatus.cs	(revision 5599)
@@ -23,5 +23,5 @@
 using System.Runtime.Serialization;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   [DataContract]
   public class JobStatus {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Logger.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Logger.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Logger.cs	(revision 5599)
@@ -1,5 +1,5 @@
 ﻿using System;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   /// <summary>
   /// Dummy implementation for a logger until a better solution is found;
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/MessageQueue.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/MessageQueue.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/MessageQueue.cs	(revision 5599)
@@ -23,7 +23,6 @@
 using System.Collections.Generic;
 using System.Threading;
-using HeuristicLab.Services.Hive.Common;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
 
   /// <summary>
@@ -33,7 +32,7 @@
 
     private static MessageQueue instance = null;
-    
+
     private Queue<MessageContainer> queue = null;
-    private Semaphore semaphore = null;                 
+    private Semaphore semaphore = null;
 
     /// <summary>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/NetworkEnum.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/NetworkEnum.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/NetworkEnum.cs	(revision 5599)
@@ -21,5 +21,5 @@
 
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   public class NetworkEnum {
     public enum WcfConnState { Connected, Disconnected, Failed }  
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs	(revision 5599)
@@ -29,7 +29,6 @@
 using System.Runtime.Serialization.Formatters.Binary;
 using System.Threading;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-
-namespace HeuristicLab.Clients.Hive.Slave {
+
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   public class PluginCache {
     private static object locker = new object();
@@ -108,8 +107,8 @@
         CopyFile(baseDir, targetDir, "ICSharpCode.SharpZipLib License.txt");
 
-        // copy slave plugins, otherwise its not possible to register the UnhandledException handler to the appdomain
-        CopyFile(baseDir, targetDir, "HeuristicLab.Clients.Hive.Slave-3.4.dll");
+        // copy slave plugins, otherwise its not possible to register the UnhandledException handler to the appdomain        
+        CopyFile(baseDir, targetDir, "HeuristicLab.Clients.Hive.SlaveCore-3.4.dll");
         CopyFile(baseDir, targetDir, "HeuristicLab.Clients.Hive-3.4.dll");
-        CopyFile(baseDir, targetDir, "HeuristicLab.Services.Hive.Common-3.4.dll");
+        //CopyFile(baseDir, targetDir, "HeuristicLab.Services.Hive.Common-3.4.dll");
         CopyFile(baseDir, targetDir, "HeuristicLab.Hive-3.4.dll");
         CopyFile(baseDir, targetDir, "HeuristicLab.Clients.Common-3.3.dll");
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginUtil.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginUtil.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginUtil.cs	(revision 5599)
@@ -27,5 +27,5 @@
 using HeuristicLab.Common;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   public static class PluginUtil {
     #region Required Plugin Search
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Properties/Settings.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Properties/Settings.Designer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Properties/Settings.Designer.cs	(revision 5599)
@@ -9,5 +9,5 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.Hive.Slave.Properties {
+namespace HeuristicLab.Clients.Hive.SlaveCore.Properties {
     
     
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs	(revision 5599)
@@ -22,5 +22,5 @@
 using System.ServiceModel;
 
-namespace HeuristicLab.Clients.Hive.Slave.ServiceContracts {
+namespace HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts {
 
   [ServiceContract(CallbackContract = typeof(ISlaveCommunicationCallbacks))]
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs	(revision 5599)
@@ -21,7 +21,7 @@
 
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave;
+using HeuristicLab.Clients.Hive.SlaveCore;
 
-namespace HeuristicLab.Clients.Hive.Slave.ServiceContracts {
+namespace HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts {
   public interface ISlaveCommunicationCallbacks {
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs	(revision 5599)
@@ -21,7 +21,7 @@
 
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
 
   /// <summary>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs	(revision 5599)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using System.ServiceModel;
-using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
-using HeuristicLab.Services.Hive.Common;
+using HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+
+namespace HeuristicLab.Clients.Hive.SlaveCore {
 
   public class SlaveCommunicationService : ISlaveCommunication {
@@ -64,5 +64,5 @@
     }
 
-    public void StatusChanged(Slave.StatusCommons status) {
+    public void StatusChanged(SlaveCore.StatusCommons status) {
       subscribers.ForEach(delegate(ISlaveCommunicationCallbacks callback) {
         if (((ICommunicationObject)callback).State == CommunicationState.Opened) {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveStatusInfo.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveStatusInfo.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveStatusInfo.cs	(revision 5599)
@@ -22,5 +22,5 @@
 using System;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   public class SlaveStatusInfo {
     static public int JobsProcessed { get; set; }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/StatusCommons.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/StatusCommons.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/StatusCommons.cs	(revision 5599)
@@ -24,5 +24,5 @@
 using System.Runtime.Serialization;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
   /// <summary>
   /// Various Status Information for the ClientConsole
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs	(revision 5599)
@@ -23,9 +23,6 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
-namespace HeuristicLab.Clients.Hive.Slave {
+namespace HeuristicLab.Clients.Hive.SlaveCore {
 
   /// <summary>
@@ -74,5 +71,5 @@
     /// Connects with the Server, registers the events and fires the Connected (and quiet possibly the ConnectionRestored) Event.
     /// </summary>
-    public void Connect(HeuristicLab.Services.Hive.Common.DataTransfer.Slave slaveInfo) {
+    public void Connect(Slave slaveInfo) {
       CallHiveService(service => {
         ConnState = NetworkEnum.WcfConnState.Connected;
@@ -126,4 +123,5 @@
         JobState before = job.State;
         job.SetState(JobState.Transferring, slaveId, "");
+
         service.UpdateJob(job);
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_ascheibe.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_ascheibe.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_ascheibe.config	(revision 5599)
@@ -28,10 +28,10 @@
     </bindings>
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
       </service>
     </services>
     <client>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+      <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
         <identity>
           <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_f005pc.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_f005pc.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_f005pc.config	(revision 5599)
@@ -28,10 +28,10 @@
     </bindings>
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
       </service>
     </services>
     <client>
-      <endpoint address="http://localhost/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+      <endpoint address="http://localhost/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
         <identity>
           <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac="/>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_services.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_services.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app_services.config	(revision 5599)
@@ -28,10 +28,10 @@
     </bindings>
     <services>
-      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
-        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      <service name="HeuristicLab.Clients.Hive.SlaveCore.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.SlaveCore.ServiceContracts.ISlaveCommunication"/>
       </service>
     </services>
     <client>
-      <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+      <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
         <identity>
           <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/ExperimentManagerTests.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/ExperimentManagerTests.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/ExperimentManagerTests.cs	(revision 5599)
@@ -20,18 +20,11 @@
 #endregion
 
-using System;
-using System.Linq;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
+using System.Threading;
+using HeuristicLab.Algorithms.GeneticAlgorithm;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Problems.TestFunctions;
+using HeuristicLab.Services.Hive;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
-using HeuristicLab.Clients.Hive.Slave.Tests;
-using HeuristicLab.Clients.Hive.Jobs;
-using HeuristicLab.Algorithms.GeneticAlgorithm;
-using HeuristicLab.Problems.TestFunctions;
-using HeuristicLab.Optimization;
-using HeuristicLab.Core;
-using System.Threading;
-using HeuristicLab.PluginInfrastructure.Manager;
-using System.IO;
-using System.Reflection;
 
 namespace HeuristicLab.Clients.Hive.Tests {
@@ -43,7 +36,7 @@
     public static void MyClassInitialize(TestContext testContext) {
       //PluginLoader.pluginAssemblies.Any();
-      ServiceLocator.Instance = new MockServiceLocator();
+      //ServiceLocator.Instance = new MockServiceLocator();
     }
-    
+
     [TestMethod]
     public void TestExperimentUpload() {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/HeuristicLab.Clients.Hive.Tests-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/HeuristicLab.Clients.Hive.Tests-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/HeuristicLab.Clients.Hive.Tests-3.4.csproj	(revision 5599)
@@ -295,5 +295,7 @@
       <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\log4net.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
+      <HintPath>..\..\..\..\..\..\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</HintPath>
+    </Reference>
     <Reference Include="Mono.Cecil">
       <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\Mono.Cecil.dll</HintPath>
@@ -306,4 +308,8 @@
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Runtime.Serialization.Formatters.Soap" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.ServiceModel.Web" />
     <Reference Include="WeifenLuo.WinFormsUI.Docking-2.3.1">
       <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\WeifenLuo.WinFormsUI.Docking-2.3.1.dll</HintPath>
@@ -319,33 +325,13 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="ExperimentManagerTests.cs" />
-    <Compile Include="Mocks\MockServiceLocator.cs" />
+    <Compile Include="ExperimentManagerTests.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Mocks\MockServiceLocator.cs">
+      <SubType>Code</SubType>
+    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4\HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj">
-      <Project>{464D70B8-2D91-485C-B622-22E4A4891C68}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon\HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon.csproj">
-      <Project>{7C4B1DE4-FC9A-4448-BCF8-3CB3FA3CB8FA}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave.SlaveTrayIcon</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.SlaveWindowsService\HeuristicLab.Clients.Hive.Slave.SlaveWindowsService.csproj">
-      <Project>{BA8001DE-E83C-4B1F-8B2E-2695C4222491}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave.SlaveWindowsService</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.Tests\HeuristicLab.Clients.Hive.Slave.Tests-3.4.csproj">
-      <Project>{C4CBD11E-1B83-464A-B0AD-0DC0FF7E57AA}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave.Tests-3.4</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.Views\3.4\HeuristicLab.Clients.Hive.Slave.Views-3.4.csproj">
-      <Project>{8C0D9F39-397F-4DBE-856F-BC4DC0FE23F8}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave.Views-3.4</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave\3.4\HeuristicLab.Clients.Hive.Slave-3.4.csproj">
-      <Project>{989FE92B-484E-41EE-87E2-6A24AF0381D8}</Project>
-      <Name>HeuristicLab.Clients.Hive.Slave-3.4</Name>
-    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.Clients.Hive.Views\3.4\HeuristicLab.Clients.Hive.Views-3.4.csproj">
       <Project>{E1D6C801-892A-406A-B606-F158E36DD3C3}</Project>
@@ -377,4 +363,5 @@
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/Mocks/MockServiceLocator.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 5599)
@@ -1,8 +1,7 @@
 ﻿using System;
 using HeuristicLab.Services.Hive;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
 namespace HeuristicLab.Clients.Hive.Tests {
-  public class MockServiceLocator : IServiceLocator {
+  public class MockServiceLocator {
     private string username;
     public string Username {
@@ -17,13 +16,14 @@
     }
 
-    public IHiveService GetService() {
-      return new HiveService();
+    public HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService GetService() {
+      HiveService service = new HeuristicLab.Services.Hive.HiveService();
+      return service;
     }
 
-    public void CallHiveService(Action<IHiveService> call) {
+    public void CallHiveService(Action<HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService> call) {
       call(GetService());
     }
 
-    public T CallHiveService<T>(Func<IHiveService, T> call) {
+    public T CallHiveService<T>(Func<HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService, T> call) {
       return call(GetService());
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/HeuristicLab.Clients.Hive.Views-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/HeuristicLab.Clients.Hive.Views-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/HeuristicLab.Clients.Hive.Views-3.4.csproj	(revision 5599)
@@ -116,4 +116,5 @@
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Windows.Forms.DataVisualization" />
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Administration/HiveAdministrationClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Administration/HiveAdministrationClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Administration/HiveAdministrationClient.cs	(revision 5599)
@@ -24,5 +24,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive.Administration {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentClient.cs	(revision 5599)
@@ -28,7 +28,4 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 using HeuristicLab.Tracing;
 
@@ -37,5 +34,4 @@
   using System.IO;
   using HeuristicLab.PluginInfrastructure;
-  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
 
   /// <summary>
@@ -138,5 +134,5 @@
       InitTimer();
     }
-    public HiveExperimentClient(DT.HiveExperiment hiveExperimentDto)
+    public HiveExperimentClient(HiveExperiment hiveExperimentDto)
       : this() {
       UpdateFromDto(hiveExperimentDto);
@@ -155,5 +151,5 @@
     }
 
-    public void UpdateFromDto(DT.HiveExperiment hiveExperimentDto) {
+    public void UpdateFromDto(HiveExperiment hiveExperimentDto) {
       this.HiveExperimentId = hiveExperimentDto.Id;
       this.Name = hiveExperimentDto.Name;
@@ -163,6 +159,6 @@
     }
 
-    public DT.HiveExperiment ToHiveExperimentDto() {
-      return new DT.HiveExperiment() {
+    public HiveExperiment ToHiveExperimentDto() {
+      return new HiveExperiment() {
         Id = this.HiveExperimentId,
         Name = this.Name,
@@ -278,5 +274,5 @@
           this.progress.Status = "Uploading HiveExperiment...";
 
-          DT.HiveExperiment he = service.GetHiveExperiment(service.AddHiveExperiment(this.ToHiveExperimentDto()));
+          HiveExperiment he = service.GetHiveExperiment(service.AddHiveExperiment(this.ToHiveExperimentDto()));
           this.UpdateFromDto(he);
 
@@ -299,4 +295,6 @@
       string exeFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "HeuristicLab 3.3.exe");
       string configFileName = Path.GetFileName(ConfigurationManager.OpenExeConfiguration(exeFilePath).FilePath);
+      string configFilePath = ConfigurationManager.OpenExeConfiguration(exeFilePath).FilePath;
+
 
       Plugin configPlugin = new Plugin() {
@@ -307,5 +305,5 @@
       PluginData configFile = new PluginData() {
         FileName = configFileName,
-        Data = File.ReadAllBytes(configFileName)
+        Data = File.ReadAllBytes(configFilePath)
       };
       configPlugin.Id = service.AddPlugin(configPlugin, new List<PluginData> { configFile });
@@ -348,5 +346,5 @@
         hiveJob.Job.Id = service.AddChildJob(parentHiveJob.Job.Id, hiveJob.Job, jobData);
       } else {
-        hiveJob.Job.Id = service.AddJob(hiveJob.Job, jobData, groups);
+        hiveJob.Job.Id = service.AddJob(hiveJob.Job, jobData, groups.ToList());
       }
 
@@ -463,5 +461,6 @@
       }
       if (HiveJob != null) {
-        jobResultPoller = new JobResultPoller(HiveJob, ApplicationConstants.ResultPollingInterval);
+        //TODO: find a better place for ApplicationConstants
+        jobResultPoller = new JobResultPoller(HiveJob, /*ApplicationConstants.ResultPollingInterval*/new TimeSpan(0, 0, 5));
         RegisterResultPollingEvents();
       }
@@ -638,4 +637,5 @@
         //progress.ProgressValue = (double)jobCount / totalJobCount;
 
+
         if (this.HiveJob.Job.DateFinished.HasValue) {
           this.ExecutionTime = this.HiveJob.Job.DateFinished.Value - this.HiveJob.Job.DateCreated;
@@ -674,5 +674,5 @@
       }
     }
-    
+
     private OptimizerJob LoadOptimizerJob(Guid jobId) {
       JobData jobData = ServiceLocator.Instance.CallHiveService(s => s.GetJobData(jobId));
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentManagerClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentManagerClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveExperimentManagerClient.cs	(revision 5599)
@@ -28,5 +28,4 @@
 namespace HeuristicLab.Clients.Hive {
   using HeuristicLab.Common;
-  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
 
   [Item("Hive Client", "Connects to Hive and lists all submitted experiments by the current user.")]
@@ -94,5 +93,5 @@
         }
         currentlyUpdating = true;
-        IEnumerable<DT.HiveExperiment> response = ServiceLocator.Instance.CallHiveService(s => s.GetHiveExperiments());
+        IEnumerable<HiveExperiment> response = ServiceLocator.Instance.CallHiveService(s => s.GetHiveExperiments());
         progress.Status = "Populating HiveExperiment list...";
         RefreshExperimentList(response);
@@ -108,6 +107,6 @@
     }
 
-    private void RefreshExperimentList(IEnumerable<DT.HiveExperiment> hiveExperiments) {
-      foreach (DT.HiveExperiment hiveExperimentDto in hiveExperiments) {
+    private void RefreshExperimentList(IEnumerable<HiveExperiment> hiveExperiments) {
+      foreach (HiveExperiment hiveExperimentDto in hiveExperiments) {
         HiveExperimentClient hiveExperiment = GetHiveExperiment(hiveExperimentDto.Id);
         if (hiveExperiment == null) {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobClient.cs	(revision 5599)
@@ -30,5 +30,4 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobDownloader.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobDownloader.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/HiveJobDownloader.cs	(revision 5599)
@@ -4,5 +4,4 @@
 using System.Threading;
 using System.Threading.Tasks;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive {
@@ -40,5 +39,5 @@
             throw t.Exception;
           }
-          if(t.Result != null) 
+          if (t.Result != null)
             results.Add(t.Result.Job.Id, t.Result);
         }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/JobResultPoller.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/JobResultPoller.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/JobResultPoller.cs	(revision 5599)
@@ -24,5 +24,4 @@
 using System.Threading;
 using HeuristicLab.Common;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/PluginClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/PluginClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/PluginClient.cs	(revision 5599)
@@ -1,4 +1,3 @@
 ﻿using System.Collections.Generic;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/StateLogItem.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/StateLogItem.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/StateLogItem.cs	(revision 5599)
@@ -2,5 +2,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj	(revision 5599)
@@ -105,6 +105,9 @@
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Remoting" />
     <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Runtime.Serialization.Formatters.Soap" />
     <Reference Include="System.ServiceModel" />
+    <Reference Include="System.ServiceModel.Web" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
@@ -139,4 +142,9 @@
     <None Include="Properties\AssemblyInfo.cs.frame" />
     <Compile Include="Exceptions\ServiceClientFactoryException.cs" />
+    <Compile Include="ServiceClients\LightweightJob.cs" />
+    <Compile Include="ServiceClients\ExecutorMessageContainer.cs" />
+    <Compile Include="ServiceClients\MessageContainer.cs" />
+    <Compile Include="ServiceClients\HiveServiceClient.cs" />
+    <Compile Include="ServiceClients\Job.cs" />
     <Compile Include="ServiceLocator.cs" />
     <Compile Include="Properties\Settings.Designer.cs">
@@ -160,8 +168,4 @@
       <Project>{F98A1740-9AC9-4D36-A582-6A2D0D06978D}</Project>
       <Name>HeuristicLab.Hive-3.4</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Services.Hive.Common\3.4\HeuristicLab.Services.Hive.Common-3.4.csproj">
-      <Project>{14424A16-48D4-445E-80BF-DDF617548BBB}</Project>
-      <Name>HeuristicLab.Services.Hive.Common-3.4</Name>
     </ProjectReference>
   </ItemGroup>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs	(revision 5599)
@@ -21,5 +21,4 @@
 
 using System;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
 namespace HeuristicLab.Clients.Hive {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/ExecutorMessageContainer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/ExecutorMessageContainer.cs	(revision 5599)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/ExecutorMessageContainer.cs	(revision 5599)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Clients.Hive {
+  /// <summary>
+  /// This class is used to communicate from the executor to the core, e.g. 
+  /// if the appdomain should be killed
+  /// </summary>
+  [StorableClass]
+  [Serializable]
+  public class ExecutorMessageContainer<CallbackParameterType> : MessageContainer {
+
+    [Storable]
+    public Action<CallbackParameterType> Callback;
+    public CallbackParameterType CallbackParameter;
+
+    public ExecutorMessageContainer() : base() { }
+
+    public ExecutorMessageContainer(MessageType message, Guid parentJobId, Action<CallbackParameterType> callback)
+      : base(message, parentJobId) {
+      this.Callback = callback;
+    }
+
+    protected ExecutorMessageContainer(ExecutorMessageContainer<CallbackParameterType> original, Cloner cloner)
+      : base(original, cloner) {
+      this.Callback = original.Callback;
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ExecutorMessageContainer<CallbackParameterType>(this, cloner);
+    }
+
+    public void execute() {
+      Callback(CallbackParameter);
+    }
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/GenerateServiceClients.cmd
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/GenerateServiceClients.cmd	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/GenerateServiceClients.cmd	(revision 5599)
@@ -7,8 +7,10 @@
 
 svcutil.exe ^
-  http://localhost:9000/HiveService/mex ^
+  http://localhost/HiveService.svc?wsdl ^
   /out:HiveServiceClient ^
   /namespace:*,HeuristicLab.Clients.Hive ^
+  /collectionType:System.Collections.Generic.List`1 ^
   /targetClientVersion:Version35 ^
+  /serializable ^
   /enableDataBinding ^
   /config:..\app.config 
@@ -24,5 +26,5 @@
 echo ---------------------------------------------------------------------------------------
 echo.
-echo Generation of OKBService client finished.
+echo Generation of (Hive)OKBService client finished.
 echo *******************************************************************************************
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs	(revision 5599)
@@ -12,5 +12,331 @@
 {
     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="Slave", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [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 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<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 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<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="HiveItemBase", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.JobData))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveItem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightJob))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.StateLog))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.PluginData))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.NamedHiveItem))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveExperiment))]
+    [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 HiveItemBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
+        {
+            get
+            {
+                return this.extensionDataField;
+            }
+            set
+            {
+                this.extensionDataField = value;
+            }
+        }
+        
+        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="JobData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    public partial class JobData : HeuristicLab.Clients.Hive.HiveItemBase
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private byte[] DataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime LastUpdateField;
+        
+        [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.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.DateTime LastUpdate
+        {
+            get
+            {
+                return this.LastUpdateField;
+            }
+            set
+            {
+                if ((this.LastUpdateField.Equals(value) != true))
+                {
+                    this.LastUpdateField = value;
+                    this.RaisePropertyChanged("LastUpdate");
+                }
+            }
+        }
+    }
     
     [System.Diagnostics.DebuggerStepThroughAttribute()]
@@ -18,34 +344,20 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="HiveItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.JobData))]
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightJob))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.StateLog))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.PluginData))]
     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.NamedHiveItem))]
     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveExperiment))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Project))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HivePlugin))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HivePluginData))]
+    [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))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Appointment))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightJob))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
-    public partial class HiveItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
+    public partial class HiveItem : HeuristicLab.Clients.Hive.HiveItemBase
+    {
+        
+        [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()]
@@ -65,27 +377,390 @@
             }
         }
-        
-        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="JobData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+    [System.Runtime.Serialization.DataContractAttribute(Name="LightweightJob", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
-    public partial class JobData : HeuristicLab.Clients.Hive.HiveItem
-    {
-        
+    [System.SerializableAttribute()]
+    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
+    public partial class LightweightJob : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.TimeSpan> ExecutionTimeField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> ParentJobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.JobState StateField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Collections.Generic.List<HeuristicLab.Clients.Hive.StateLog> StateLogField;
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Nullable<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.Nullable<System.Guid> ParentJobId
+        {
+            get
+            {
+                return this.ParentJobIdField;
+            }
+            set
+            {
+                if ((this.ParentJobIdField.Equals(value) != true))
+                {
+                    this.ParentJobIdField = value;
+                    this.RaisePropertyChanged("ParentJobId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public HeuristicLab.Clients.Hive.JobState 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.Common.DataTra" +
+        "nsfer")]
+    [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.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.Guid> SlaveIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.JobState StateField;
+        
+        [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.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.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.JobState State
+        {
+            get
+            {
+                return this.StateField;
+            }
+            set
+            {
+                if ((this.StateField.Equals(value) != true))
+                {
+                    this.StateField = value;
+                    this.RaisePropertyChanged("State");
+                }
+            }
+        }
+        
+        [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="Job", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    public partial class Job : HeuristicLab.Clients.Hive.LightweightJob
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int CoresNeededField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool FinishWhenChildJobsFinishedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool IsParentJobField;
+        
+        [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 IsParentJob
+        {
+            get
+            {
+                return this.IsParentJobField;
+            }
+            set
+            {
+                if ((this.IsParentJobField.Equals(value) != true))
+                {
+                    this.IsParentJobField = value;
+                    this.RaisePropertyChanged("IsParentJob");
+                }
+            }
+        }
+        
+        [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="PluginData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    public partial class PluginData : HeuristicLab.Clients.Hive.HiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private byte[] DataField;
         
-        private System.Guid JobIdField;
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string FileNameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid PluginIdField;
         
         [System.Runtime.Serialization.DataMemberAttribute()]
@@ -107,16 +782,33 @@
         
         [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");
+        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");
                 }
             }
@@ -128,8 +820,7 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="NamedHiveItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
+    [System.SerializableAttribute()]
     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveExperiment))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Project))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HivePlugin))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HivePluginData))]
+    [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))]
@@ -138,6 +829,8 @@
     {
         
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private string DescriptionField;
         
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private string NameField;
         
@@ -181,32 +874,93 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="HiveExperiment", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
+    [System.SerializableAttribute()]
     public partial class HiveExperiment : HeuristicLab.Clients.Hive.NamedHiveItem
     {
         
-        private string ResourceIdsField;
-        
-        private System.Nullable<System.Guid> RootJobIdField;
-        
-        private System.Guid UserIdField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string ResourceIds
-        {
-            get
-            {
-                return this.ResourceIdsField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ResourceIdsField, value) != true))
-                {
-                    this.ResourceIdsField = value;
-                    this.RaisePropertyChanged("ResourceIds");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Nullable<System.Guid> RootJobId
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateCreatedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Nullable<System.DateTime> LastAccessedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid OwnerUserIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string ResourceNamesField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid RootJobIdField;
+        
+        [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 System.Nullable<System.DateTime> LastAccessed
+        {
+            get
+            {
+                return this.LastAccessedField;
+            }
+            set
+            {
+                if ((this.LastAccessedField.Equals(value) != true))
+                {
+                    this.LastAccessedField = value;
+                    this.RaisePropertyChanged("LastAccessed");
+                }
+            }
+        }
+        
+        [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 ResourceNames
+        {
+            get
+            {
+                return this.ResourceNamesField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.ResourceNamesField, value) != true))
+                {
+                    this.ResourceNamesField = value;
+                    this.RaisePropertyChanged("ResourceNames");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid RootJobId
         {
             get
@@ -223,4 +977,59 @@
             }
         }
+    }
+    
+    [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.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    public partial class Plugin : HeuristicLab.Clients.Hive.NamedHiveItem
+    {
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime DateCreatedField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool IsLocalField;
+        
+        [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 bool IsLocal
+        {
+            get
+            {
+                return this.IsLocalField;
+            }
+            set
+            {
+                if ((this.IsLocalField.Equals(value) != true))
+                {
+                    this.IsLocalField = value;
+                    this.RaisePropertyChanged("IsLocal");
+                }
+            }
+        }
         
         [System.Runtime.Serialization.DataMemberAttribute()]
@@ -240,41 +1049,4 @@
             }
         }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="Project", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    public partial class Project : HeuristicLab.Clients.Hive.NamedHiveItem
-    {
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="HivePlugin", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    public partial class HivePlugin : HeuristicLab.Clients.Hive.NamedHiveItem
-    {
-        
-        private bool UpdateField;
-        
-        private System.Version VersionField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public bool Update
-        {
-            get
-            {
-                return this.UpdateField;
-            }
-            set
-            {
-                if ((this.UpdateField.Equals(value) != true))
-                {
-                    this.UpdateField = value;
-                    this.RaisePropertyChanged("Update");
-                }
-            }
-        }
         
         [System.Runtime.Serialization.DataMemberAttribute()]
@@ -291,31 +1063,4 @@
                     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="HivePluginData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    public partial class HivePluginData : HeuristicLab.Clients.Hive.NamedHiveItem
-    {
-        
-        private byte[] DataField;
-        
-        [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");
                 }
             }
@@ -327,8 +1072,29 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="Resource", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
+    [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 System.Nullable<System.Guid> ParentResourceIdField;
+        
+        [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");
+                }
+            }
+        }
     }
     
@@ -337,628 +1103,36 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="SlaveGroup", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
+    [System.SerializableAttribute()]
     public partial class SlaveGroup : HeuristicLab.Clients.Hive.Resource
     {
-        
-        private System.Guid[] ResourcesIdsField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid[] ResourcesIds
-        {
-            get
-            {
-                return this.ResourcesIdsField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ResourcesIdsField, value) != true))
-                {
-                    this.ResourcesIdsField = value;
-                    this.RaisePropertyChanged("ResourcesIds");
-                }
-            }
-        }
-    }
-    
-    [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.Common.DataTra" +
+    [System.Runtime.Serialization.DataContractAttribute(Name="CpuArchitecture", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
-    public partial class Slave : HeuristicLab.Clients.Hive.Resource
-    {
-        
-        private HeuristicLab.Clients.Hive.CalendarState CalendarSyncStatusField;
-        
-        private System.Nullable<int> CoresField;
-        
-        private System.Nullable<int> CpuSpeedPerCoreField;
-        
-        private System.Nullable<int> FreeCoresField;
-        
-        private System.Nullable<int> FreeMemoryField;
-        
-        private bool IsAllowedToCalculateField;
-        
-        private System.Nullable<int> MemoryField;
-        
-        private System.Guid SlaveConfigIdField;
-        
-        private HeuristicLab.Clients.Hive.SlaveState StateField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.Hive.CalendarState CalendarSyncStatus
-        {
-            get
-            {
-                return this.CalendarSyncStatusField;
-            }
-            set
-            {
-                if ((this.CalendarSyncStatusField.Equals(value) != true))
-                {
-                    this.CalendarSyncStatusField = value;
-                    this.RaisePropertyChanged("CalendarSyncStatus");
-                }
-            }
-        }
-        
-        [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 System.Nullable<int> CpuSpeedPerCore
-        {
-            get
-            {
-                return this.CpuSpeedPerCoreField;
-            }
-            set
-            {
-                if ((this.CpuSpeedPerCoreField.Equals(value) != true))
-                {
-                    this.CpuSpeedPerCoreField = value;
-                    this.RaisePropertyChanged("CpuSpeedPerCore");
-                }
-            }
-        }
-        
-        [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<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 SlaveConfigId
-        {
-            get
-            {
-                return this.SlaveConfigIdField;
-            }
-            set
-            {
-                if ((this.SlaveConfigIdField.Equals(value) != true))
-                {
-                    this.SlaveConfigIdField = value;
-                    this.RaisePropertyChanged("SlaveConfigId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.Hive.SlaveState State
-        {
-            get
-            {
-                return this.StateField;
-            }
-            set
-            {
-                if ((this.StateField.Equals(value) != true))
-                {
-                    this.StateField = value;
-                    this.RaisePropertyChanged("State");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    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="Appointment", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+    [System.Runtime.Serialization.DataContractAttribute(Name="SlaveState", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
-    public partial class Appointment : HeuristicLab.Clients.Hive.HiveItem
-    {
-        
-        private bool AllDayEventField;
-        
-        private System.DateTime EndDateField;
-        
-        private bool RecurringField;
-        
-        private System.Guid RecurringIdField;
-        
-        private System.Guid ResourceIdField;
-        
-        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 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="LightweightJob", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
-    public partial class LightweightJob : HeuristicLab.Clients.Hive.HiveItem
-    {
-        
-        private System.Nullable<System.DateTime> DateCalculatedField;
-        
-        private System.Nullable<System.DateTime> DateCreatedField;
-        
-        private System.Nullable<System.DateTime> DateFinishedField;
-        
-        private string ExceptionField;
-        
-        private System.TimeSpan ExecutionTimeField;
-        
-        private System.Nullable<System.Guid> ParentJobIdField;
-        
-        private System.Guid SlaveIdField;
-        
-        private HeuristicLab.Clients.Hive.JobState StateField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Nullable<System.DateTime> DateCalculated
-        {
-            get
-            {
-                return this.DateCalculatedField;
-            }
-            set
-            {
-                if ((this.DateCalculatedField.Equals(value) != true))
-                {
-                    this.DateCalculatedField = value;
-                    this.RaisePropertyChanged("DateCalculated");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Nullable<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 System.Nullable<System.DateTime> DateFinished
-        {
-            get
-            {
-                return this.DateFinishedField;
-            }
-            set
-            {
-                if ((this.DateFinishedField.Equals(value) != true))
-                {
-                    this.DateFinishedField = value;
-                    this.RaisePropertyChanged("DateFinished");
-                }
-            }
-        }
-        
-        [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.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.Nullable<System.Guid> ParentJobId
-        {
-            get
-            {
-                return this.ParentJobIdField;
-            }
-            set
-            {
-                if ((this.ParentJobIdField.Equals(value) != true))
-                {
-                    this.ParentJobIdField = value;
-                    this.RaisePropertyChanged("ParentJobId");
-                }
-            }
-        }
-        
-        [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.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.Hive.JobState State
-        {
-            get
-            {
-                return this.StateField;
-            }
-            set
-            {
-                if ((this.StateField.Equals(value) != true))
-                {
-                    this.StateField = value;
-                    this.RaisePropertyChanged("State");
-                }
-            }
-        }
-    }
-    
-    [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.Common.DataTra" +
-        "nsfer")]
-    public partial class Job : HeuristicLab.Clients.Hive.LightweightJob
-    {
-        
-        private System.Guid[] AssignedResourceIdsField;
-        
-        private int CoresNeededField;
-        
-        private int MemoryNeededField;
-        
-        private System.Guid[] PluginsNeededIdsField;
-        
-        private int PriorityField;
-        
-        private System.Guid ProjectIdField;
-        
-        private System.Guid UserIdField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid[] AssignedResourceIds
-        {
-            get
-            {
-                return this.AssignedResourceIdsField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.AssignedResourceIdsField, value) != true))
-                {
-                    this.AssignedResourceIdsField = value;
-                    this.RaisePropertyChanged("AssignedResourceIds");
-                }
-            }
-        }
-        
-        [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 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.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.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid ProjectId
-        {
-            get
-            {
-                return this.ProjectIdField;
-            }
-            set
-            {
-                if ((this.ProjectIdField.Equals(value) != true))
-                {
-                    this.ProjectIdField = value;
-                    this.RaisePropertyChanged("ProjectId");
-                }
-            }
-        }
-        
-        [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");
-                }
-            }
-        }
+    public enum SlaveState : int
+    {
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Idle = 0,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Calculating = 1,
+        
+        [System.Runtime.Serialization.EnumMemberAttribute()]
+        Offline = 2,
     }
     
@@ -970,5 +1144,5 @@
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        Calculating = 0,
+        Offline = 0,
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
@@ -976,52 +1150,17 @@
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        Finished = 2,
+        Transferring = 2,
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        Aborted = 3,
+        Calculating = 3,
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        Failed = 4,
+        Finished = 4,
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        WaitForChildJobs = 5,
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="CalendarState", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    public enum CalendarState : int
-    {
+        Aborted = 5,
         
         [System.Runtime.Serialization.EnumMemberAttribute()]
-        Fetch = 0,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        ForceFetch = 1,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        Fetching = 2,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        Fetched = 3,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        NotAllowedToFetch = 4,
-    }
-    
-    [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.Common.DataTra" +
-        "nsfer")]
-    public enum SlaveState : int
-    {
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        Idle = 0,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        Calculating = 1,
-        
-        [System.Runtime.Serialization.EnumMemberAttribute()]
-        Offline = 2,
+        Failed = 6,
     }
     
@@ -1030,17 +1169,24 @@
     [System.Runtime.Serialization.DataContractAttribute(Name="Heartbeat", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
         "nsfer")]
+    [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 int FreeCoresField;
         
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private int FreeMemoryField;
         
-        private bool IsAllowedToCalculateField;
-        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private System.Collections.Generic.Dictionary<System.Guid, System.TimeSpan> JobProgressField;
         
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
         private System.Guid SlaveIdField;
         
@@ -1054,4 +1200,21 @@
             {
                 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");
+                }
             }
         }
@@ -1087,21 +1250,4 @@
                     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");
                 }
             }
@@ -1157,12 +1303,16 @@
     [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.Common")]
+    [System.SerializableAttribute()]
     public partial class MessageContainer : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
     {
         
+        [System.NonSerializedAttribute()]
         private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
         
-        private System.Guid JobIdk__BackingFieldField;
-        
-        private HeuristicLab.Clients.Hive.MessageContainer.MessageType Messagek__BackingFieldField;
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private HeuristicLab.Clients.Hive.MessageContainer.MessageType MessageField;
         
         public System.Runtime.Serialization.ExtensionDataObject ExtensionData
@@ -1178,34 +1328,34 @@
         }
         
-        [System.Runtime.Serialization.DataMemberAttribute(Name="<JobId>k__BackingField", IsRequired=true)]
-        public System.Guid JobIdk__BackingField
-        {
-            get
-            {
-                return this.JobIdk__BackingFieldField;
-            }
-            set
-            {
-                if ((this.JobIdk__BackingFieldField.Equals(value) != true))
-                {
-                    this.JobIdk__BackingFieldField = value;
-                    this.RaisePropertyChanged("JobIdk__BackingField");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute(Name="<Message>k__BackingField", IsRequired=true)]
-        public HeuristicLab.Clients.Hive.MessageContainer.MessageType Messagek__BackingField
-        {
-            get
-            {
-                return this.Messagek__BackingFieldField;
-            }
-            set
-            {
-                if ((this.Messagek__BackingFieldField.Equals(value) != true))
-                {
-                    this.Messagek__BackingFieldField = value;
-                    this.RaisePropertyChanged("Messagek__BackingField");
+        [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.MessageContainer.MessageType Message
+        {
+            get
+            {
+                return this.MessageField;
+            }
+            set
+            {
+                if ((this.MessageField.Equals(value) != true))
+                {
+                    this.MessageField = value;
+                    this.RaisePropertyChanged("Message");
                 }
             }
@@ -1229,38 +1379,38 @@
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            FetchJob = 0,
+            CalculateJob = 0,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            AbortJob = 1,
+            StopJob = 1,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            JobAborted = 2,
+            StopAll = 2,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            FinishedJob = 3,
+            AbortJob = 3,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            NoMessage = 4,
+            AbortAll = 4,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            SnapshotReady = 5,
+            PauseJob = 5,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            Shutdown = 6,
+            PauseAll = 6,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            JobFailed = 7,
+            Restart = 7,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            UptimeLimitDisconnect = 8,
+            Sleep = 8,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            UpdateCalendar = 9,
+            ShutdownSlave = 9,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            AddChildJob = 10,
+            SayHello = 10,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
-            PauseJob = 11,
+            AddChildJob = 11,
             
             [System.Runtime.Serialization.EnumMemberAttribute()]
@@ -1269,7 +1419,4 @@
             [System.Runtime.Serialization.EnumMemberAttribute()]
             DeleteChildJobs = 13,
-            
-            [System.Runtime.Serialization.EnumMemberAttribute()]
-            AddSlaveInfo = 14,
         }
     }
@@ -1280,9 +1427,39 @@
     {
         
+        [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/TriggerLifecycle", ReplyAction="http://tempuri.org/IHiveService/TriggerLifecycleResponse")]
+        void TriggerLifecycle();
+        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddJob", ReplyAction="http://tempuri.org/IHiveService/AddJobResponse")]
-        System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto);
+        System.Guid AddJob(HeuristicLab.Clients.Hive.Job job, HeuristicLab.Clients.Hive.JobData jobData, System.Collections.Generic.List<System.Guid> resourceIds);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddChildJob", ReplyAction="http://tempuri.org/IHiveService/AddChildJobResponse")]
-        System.Guid AddChildJob(System.Guid parentJobId, HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto);
+        System.Guid AddChildJob(System.Guid parentJobId, HeuristicLab.Clients.Hive.Job job, HeuristicLab.Clients.Hive.JobData jobData);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJob", ReplyAction="http://tempuri.org/IHiveService/GetJobResponse")]
@@ -1290,35 +1467,32 @@
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobs", ReplyAction="http://tempuri.org/IHiveService/GetJobsResponse")]
-        HeuristicLab.Clients.Hive.Job[] GetJobs();
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs();
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightJobs", ReplyAction="http://tempuri.org/IHiveService/GetLightweightJobsResponse")]
-        HeuristicLab.Clients.Hive.LightweightJob[] GetLightweightJobs(System.Guid[] jobIds);
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightJobs(System.Collections.Generic.List<System.Guid> jobIds);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightChildJobs", ReplyAction="http://tempuri.org/IHiveService/GetLightweightChildJobsResponse")]
-        HeuristicLab.Clients.Hive.LightweightJob[] GetLightweightChildJobs(System.Nullable<System.Guid> parentJobId, bool recursive, bool includeParent);
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightChildJobs(System.Nullable<System.Guid> parentJobId, bool recursive, bool includeParent);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobData", ReplyAction="http://tempuri.org/IHiveService/GetJobDataResponse")]
         HeuristicLab.Clients.Hive.JobData GetJobData(System.Guid jobId);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobDataStreamed", ReplyAction="http://tempuri.org/IHiveService/GetJobDataStreamedResponse")]
-        System.IO.Stream GetJobDataStreamed(System.Guid jobId);
-        
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateJob", ReplyAction="http://tempuri.org/IHiveService/UpdateJobResponse")]
-        void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateJobDataStreamed", ReplyAction="http://tempuri.org/IHiveService/UpdateJobDataStreamedResponse")]
-        void UpdateJobDataStreamed(System.IO.Stream stream);
+        void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/UpdateJobData", ReplyAction="http://tempuri.org/IHiveService/UpdateJobDataResponse")]
+        void UpdateJobData(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto);
+        
+        [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/DeleteChildJobs", ReplyAction="http://tempuri.org/IHiveService/DeleteChildJobsResponse")]
         void DeleteChildJobs(System.Guid parentJobId);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AquireJob", ReplyAction="http://tempuri.org/IHiveService/AquireJobResponse")]
-        HeuristicLab.Clients.Hive.Job AquireJob(System.Guid slaveId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AbortJob", ReplyAction="http://tempuri.org/IHiveService/AbortJobResponse")]
-        void AbortJob(System.Guid jobId);
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/StopJob", ReplyAction="http://tempuri.org/IHiveService/StopJobResponse")]
+        void StopJob(System.Guid jobId);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/PauseJob", ReplyAction="http://tempuri.org/IHiveService/PauseJobResponse")]
-        HeuristicLab.Clients.Hive.Job PauseJob(HeuristicLab.Clients.Hive.JobData serializedJob);
+        void PauseJob(System.Guid jobId);
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetHiveExperiment", ReplyAction="http://tempuri.org/IHiveService/GetHiveExperimentResponse")]
@@ -1326,5 +1500,5 @@
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetHiveExperiments", ReplyAction="http://tempuri.org/IHiveService/GetHiveExperimentsResponse")]
-        HeuristicLab.Clients.Hive.HiveExperiment[] GetHiveExperiments();
+        System.Collections.Generic.List<HeuristicLab.Clients.Hive.HiveExperiment> GetHiveExperiments();
         
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddHiveExperiment", ReplyAction="http://tempuri.org/IHiveService/AddHiveExperimentResponse")]
@@ -1337,60 +1511,33 @@
         void DeleteHiveExperiment(System.Guid hiveExperimentId);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetAllProjects", ReplyAction="http://tempuri.org/IHiveService/GetAllProjectsResponse")]
-        HeuristicLab.Clients.Hive.Project GetAllProjects();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/CreateProject", ReplyAction="http://tempuri.org/IHiveService/CreateProjectResponse")]
-        void CreateProject(HeuristicLab.Clients.Hive.Project project);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/ChangeProject", ReplyAction="http://tempuri.org/IHiveService/ChangeProjectResponse")]
-        void ChangeProject(HeuristicLab.Clients.Hive.Project project);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteProject", ReplyAction="http://tempuri.org/IHiveService/DeleteProjectResponse")]
-        void DeleteProject(System.Guid projectId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobsByProject", ReplyAction="http://tempuri.org/IHiveService/GetJobsByProjectResponse")]
-        HeuristicLab.Clients.Hive.Job[] GetJobsByProject(System.Guid projectId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/ProcessHeartbeat", ReplyAction="http://tempuri.org/IHiveService/ProcessHeartbeatResponse")]
-        HeuristicLab.Clients.Hive.MessageContainer[] ProcessHeartbeat(HeuristicLab.Clients.Hive.Heartbeat heartbeat);
+        [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/AddPlugin", ReplyAction="http://tempuri.org/IHiveService/AddPluginResponse")]
+        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")]
-        HeuristicLab.Clients.Hive.HivePluginData[] GetPlugins(HeuristicLab.Clients.Hive.HivePlugin[] pluginList);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetStreamedPlugins", ReplyAction="http://tempuri.org/IHiveService/GetStreamedPluginsResponse")]
-        System.IO.Stream GetStreamedPlugins(HeuristicLab.Clients.Hive.HivePlugin[] pluginList);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetCalendar", ReplyAction="http://tempuri.org/IHiveService/GetCalendarResponse")]
-        HeuristicLab.Clients.Hive.Appointment[] GetCalendar(System.Guid slaveId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/SetCalendarStatus", ReplyAction="http://tempuri.org/IHiveService/SetCalendarStatusResponse")]
-        void SetCalendarStatus(System.Guid clientId, HeuristicLab.Clients.Hive.CalendarState state);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetUptimeCalendarForResource", ReplyAction="http://tempuri.org/IHiveService/GetUptimeCalendarForResourceResponse")]
-        HeuristicLab.Clients.Hive.Appointment[] GetUptimeCalendarForResource(System.Guid guid);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/SetUptimeCalendarForResource", ReplyAction="http://tempuri.org/IHiveService/SetUptimeCalendarForResourceResponse")]
-        void SetUptimeCalendarForResource(System.Guid guid, HeuristicLab.Clients.Hive.Appointment[] appointments, bool isForced);
+        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/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/GetSlaves", ReplyAction="http://tempuri.org/IHiveService/GetSlavesResponse")]
-        HeuristicLab.Clients.Hive.Slave[] GetSlaves();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetSlaveGroups", ReplyAction="http://tempuri.org/IHiveService/GetSlaveGroupsResponse")]
-        HeuristicLab.Clients.Hive.SlaveGroup[] GetSlaveGroups();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/DeleteSlaveGroup", ReplyAction="http://tempuri.org/IHiveService/DeleteSlaveGroupResponse")]
-        void DeleteSlaveGroup(System.Guid clientGroupId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddResourceToGroup", ReplyAction="http://tempuri.org/IHiveService/AddResourceToGroupResponse")]
-        void AddResourceToGroup(System.Guid slaveGroupId, HeuristicLab.Clients.Hive.Resource resource);
-        
-        [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/UpdateSlave", ReplyAction="http://tempuri.org/IHiveService/UpdateSlaveResponse")]
-        void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave);
+        [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);
     }
     
@@ -1429,12 +1576,62 @@
         }
         
-        public System.Guid AddJob(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto)
-        {
-            return base.Channel.AddJob(jobDto, jobDataDto);
-        }
-        
-        public System.Guid AddChildJob(System.Guid parentJobId, HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto)
-        {
-            return base.Channel.AddChildJob(parentJobId, jobDto, jobDataDto);
+        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 void TriggerLifecycle()
+        {
+            base.Channel.TriggerLifecycle();
+        }
+        
+        public System.Guid AddJob(HeuristicLab.Clients.Hive.Job job, HeuristicLab.Clients.Hive.JobData jobData, System.Collections.Generic.List<System.Guid> resourceIds)
+        {
+            return base.Channel.AddJob(job, jobData, resourceIds);
+        }
+        
+        public System.Guid AddChildJob(System.Guid parentJobId, HeuristicLab.Clients.Hive.Job job, HeuristicLab.Clients.Hive.JobData jobData)
+        {
+            return base.Channel.AddChildJob(parentJobId, job, jobData);
         }
         
@@ -1444,15 +1641,15 @@
         }
         
-        public HeuristicLab.Clients.Hive.Job[] GetJobs()
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.Job> GetJobs()
         {
             return base.Channel.GetJobs();
         }
         
-        public HeuristicLab.Clients.Hive.LightweightJob[] GetLightweightJobs(System.Guid[] jobIds)
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightJobs(System.Collections.Generic.List<System.Guid> jobIds)
         {
             return base.Channel.GetLightweightJobs(jobIds);
         }
         
-        public HeuristicLab.Clients.Hive.LightweightJob[] GetLightweightChildJobs(System.Nullable<System.Guid> parentJobId, bool recursive, bool includeParent)
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightChildJobs(System.Nullable<System.Guid> parentJobId, bool recursive, bool includeParent)
         {
             return base.Channel.GetLightweightChildJobs(parentJobId, recursive, includeParent);
@@ -1464,17 +1661,17 @@
         }
         
-        public System.IO.Stream GetJobDataStreamed(System.Guid jobId)
-        {
-            return base.Channel.GetJobDataStreamed(jobId);
-        }
-        
-        public void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto)
-        {
-            base.Channel.UpdateJob(jobDto, jobDataDto);
-        }
-        
-        public void UpdateJobDataStreamed(System.IO.Stream stream)
-        {
-            base.Channel.UpdateJobDataStreamed(stream);
+        public void UpdateJob(HeuristicLab.Clients.Hive.Job jobDto)
+        {
+            base.Channel.UpdateJob(jobDto);
+        }
+        
+        public void UpdateJobData(HeuristicLab.Clients.Hive.Job jobDto, HeuristicLab.Clients.Hive.JobData jobDataDto)
+        {
+            base.Channel.UpdateJobData(jobDto, jobDataDto);
+        }
+        
+        public void DeleteJob(System.Guid jobId)
+        {
+            base.Channel.DeleteJob(jobId);
         }
         
@@ -1484,17 +1681,12 @@
         }
         
-        public HeuristicLab.Clients.Hive.Job AquireJob(System.Guid slaveId)
-        {
-            return base.Channel.AquireJob(slaveId);
-        }
-        
-        public void AbortJob(System.Guid jobId)
-        {
-            base.Channel.AbortJob(jobId);
-        }
-        
-        public HeuristicLab.Clients.Hive.Job PauseJob(HeuristicLab.Clients.Hive.JobData serializedJob)
-        {
-            return base.Channel.PauseJob(serializedJob);
+        public void StopJob(System.Guid jobId)
+        {
+            base.Channel.StopJob(jobId);
+        }
+        
+        public void PauseJob(System.Guid jobId)
+        {
+            base.Channel.PauseJob(jobId);
         }
         
@@ -1504,5 +1696,5 @@
         }
         
-        public HeuristicLab.Clients.Hive.HiveExperiment[] GetHiveExperiments()
+        public System.Collections.Generic.List<HeuristicLab.Clients.Hive.HiveExperiment> GetHiveExperiments()
         {
             return base.Channel.GetHiveExperiments();
@@ -1524,62 +1716,37 @@
         }
         
-        public HeuristicLab.Clients.Hive.Project GetAllProjects()
-        {
-            return base.Channel.GetAllProjects();
-        }
-        
-        public void CreateProject(HeuristicLab.Clients.Hive.Project project)
-        {
-            base.Channel.CreateProject(project);
-        }
-        
-        public void ChangeProject(HeuristicLab.Clients.Hive.Project project)
-        {
-            base.Channel.ChangeProject(project);
-        }
-        
-        public void DeleteProject(System.Guid projectId)
-        {
-            base.Channel.DeleteProject(projectId);
-        }
-        
-        public HeuristicLab.Clients.Hive.Job[] GetJobsByProject(System.Guid projectId)
-        {
-            return base.Channel.GetJobsByProject(projectId);
-        }
-        
-        public HeuristicLab.Clients.Hive.MessageContainer[] ProcessHeartbeat(HeuristicLab.Clients.Hive.Heartbeat heartbeat)
-        {
-            return base.Channel.ProcessHeartbeat(heartbeat);
-        }
-        
-        public HeuristicLab.Clients.Hive.HivePluginData[] GetPlugins(HeuristicLab.Clients.Hive.HivePlugin[] pluginList)
-        {
-            return base.Channel.GetPlugins(pluginList);
-        }
-        
-        public System.IO.Stream GetStreamedPlugins(HeuristicLab.Clients.Hive.HivePlugin[] pluginList)
-        {
-            return base.Channel.GetStreamedPlugins(pluginList);
-        }
-        
-        public HeuristicLab.Clients.Hive.Appointment[] GetCalendar(System.Guid slaveId)
-        {
-            return base.Channel.GetCalendar(slaveId);
-        }
-        
-        public void SetCalendarStatus(System.Guid clientId, HeuristicLab.Clients.Hive.CalendarState state)
-        {
-            base.Channel.SetCalendarStatus(clientId, state);
-        }
-        
-        public HeuristicLab.Clients.Hive.Appointment[] GetUptimeCalendarForResource(System.Guid guid)
-        {
-            return base.Channel.GetUptimeCalendarForResource(guid);
-        }
-        
-        public void SetUptimeCalendarForResource(System.Guid guid, HeuristicLab.Clients.Hive.Appointment[] appointments, bool isForced)
-        {
-            base.Channel.SetUptimeCalendarForResource(guid, appointments, isForced);
+        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 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 System.Guid AddSlave(HeuristicLab.Clients.Hive.Slave slave)
+        {
+            return base.Channel.AddSlave(slave);
         }
         
@@ -1589,32 +1756,12 @@
         }
         
-        public HeuristicLab.Clients.Hive.Slave[] GetSlaves()
-        {
-            return base.Channel.GetSlaves();
-        }
-        
-        public HeuristicLab.Clients.Hive.SlaveGroup[] GetSlaveGroups()
-        {
-            return base.Channel.GetSlaveGroups();
-        }
-        
-        public void DeleteSlaveGroup(System.Guid clientGroupId)
-        {
-            base.Channel.DeleteSlaveGroup(clientGroupId);
-        }
-        
-        public void AddResourceToGroup(System.Guid slaveGroupId, HeuristicLab.Clients.Hive.Resource resource)
-        {
-            base.Channel.AddResourceToGroup(slaveGroupId, resource);
-        }
-        
-        public void RemoveResourceFromGroup(System.Guid slaveGroupId, System.Guid resourceId)
-        {
-            base.Channel.RemoveResourceFromGroup(slaveGroupId, resourceId);
-        }
-        
-        public void UpdateSlave(HeuristicLab.Clients.Hive.Slave slave)
-        {
-            base.Channel.UpdateSlave(slave);
+        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);
         }
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs	(revision 5599)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs	(revision 5599)
@@ -0,0 +1,70 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class Job : IDeepCloneable {
+
+    public Job() { }
+
+    public void SetState(JobState state) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now });
+    }
+
+    public void SetState(JobState state, Guid userId) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, UserId = userId });
+    }
+
+    public void SetState(JobState state, Guid slaveId, string exception) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, SlaveId = slaveId, Exception = exception });
+    }
+
+    protected Job(Job original, Cloner cloner) {
+      this.Priority = original.Priority;
+      this.CoresNeeded = original.CoresNeeded;
+      this.MemoryNeeded = original.MemoryNeeded;
+      this.PluginsNeededIds = new List<Guid>(original.PluginsNeededIds);
+      this.LastHeartbeat = original.LastHeartbeat;
+      this.IsParentJob = original.IsParentJob;
+      this.FinishWhenChildJobsFinished = original.FinishWhenChildJobsFinished;
+      this.ExecutionTime = original.ExecutionTime;
+      this.ParentJobId = original.ParentJobId;
+      this.StateLog = new List<StateLog>(original.StateLog);
+      this.State = original.State;
+      this.Id = original.Id;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new Job(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs	(revision 5599)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs	(revision 5599)
@@ -0,0 +1,62 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class LightweightJob {
+
+    public LightweightJob() {
+      StateLog = new List<StateLog>();
+    }
+
+
+    public LightweightJob(Job job) {
+      this.Id = job.Id;
+      this.ExecutionTime = job.ExecutionTime;
+      this.ParentJobId = job.ParentJobId;
+      this.StateLog = new List<StateLog>(job.StateLog);
+      this.State = job.State;
+    }
+
+    public StateLog CurrentStateLog { get { return StateLog.Last(); } }
+    public DateTime DateCreated { get { return StateLog.First().DateTime; } }
+    public DateTime? DateFinished { get { return CurrentStateLog.State == JobState.Finished ? new DateTime?(CurrentStateLog.DateTime) : null; } }
+
+    public void SetState(JobState state) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now });
+    }
+
+    public void SetState(JobState state, Guid userId) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, UserId = userId });
+    }
+
+    public void SetState(JobState state, Guid slaveId, string exception) {
+      this.State = state;
+      this.StateLog.Add(new StateLog() { State = state, DateTime = DateTime.Now, SlaveId = slaveId, Exception = exception });
+    }
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs	(revision 5599)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs	(revision 5599)
@@ -0,0 +1,52 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Clients.Hive {
+  [StorableClass]
+  public partial class MessageContainer : IDeepCloneable {
+
+    protected MessageContainer() { }
+    public MessageContainer(MessageType message) {
+      Message = message;
+      JobId = Guid.Empty;
+    }
+    public MessageContainer(MessageType message, Guid jobId) {
+      Message = message;
+      JobId = jobId;
+    }
+
+    protected MessageContainer(MessageContainer original, Cloner cloner) {
+      cloner.RegisterClonedObject(original, this);
+      this.Message = original.Message;
+      this.JobId = original.JobId;
+    }
+    public virtual IDeepCloneable Clone(Cloner cloner) {
+      return new MessageContainer(this, cloner);
+    }
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceLocator.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceLocator.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceLocator.cs	(revision 5599)
@@ -21,7 +21,5 @@
 
 using System;
-using System.ServiceModel;
 using HeuristicLab.Clients.Common;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
 namespace HeuristicLab.Clients.Hive {
@@ -51,29 +49,43 @@
       set { password = value; }
     }
-    
-    public Disposable<ChannelFactory<IHiveService>> GetService() {
-      if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password)) {
-        return ClientFactory.CreateChannelFactory<IHiveService>("wsHttpBinding_IHiveService");
-      } else {
-        return ClientFactory.CreateChannelFactory<IHiveService>("wsHttpBinding_IHiveService", null, username, password);
+
+    private HiveServiceClient NewServiceClient() {
+      HiveServiceClient cl;
+      if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password))
+        cl = ClientFactory.CreateClient<HiveServiceClient, IHiveService>();
+      else
+        cl = ClientFactory.CreateClient<HiveServiceClient, IHiveService>(null, null, username, password);
+
+      return cl;
+    }
+
+    public T CallHiveService<T>(Func<IHiveService, T> call) {
+      HiveServiceClient client = NewServiceClient();
+      try {
+        return call(client);
+      }
+      finally {
+        try {
+          client.Close();
+        }
+        catch (Exception) {
+          client.Abort();
+        }
       }
     }
 
     public void CallHiveService(Action<IHiveService> call) {
-      using (var channelFactory = this.GetService()) {
-        var service = channelFactory.Obj.CreateChannel();
-        call(service);
-      } // disposing the channelfactory is done by the disposable object; the channel gets disposed when the channelfactory is disposed
-    }
-
-    private T CallHiveService<T>(Func<IHiveService, T> call) {
-      using (var channelFactory = this.GetService()) {
-        var service = channelFactory.Obj.CreateChannel();
-        return call(service);
-      } // disposing the channelfactory is done by the disposable object; the channel gets disposed when the channelfactory is disposed
-    }
-
-    T IServiceLocator.CallHiveService<T>(Func<IHiveService, T> call) {
-      return CallHiveService<T>(call);
+      HiveServiceClient client = NewServiceClient();
+      try {
+        call(client);
+      }
+      finally {
+        try {
+          client.Close();
+        }
+        catch (Exception) {
+          client.Abort();
+        }
+      }
     }
   }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_ascheibe.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_ascheibe.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_ascheibe.config	(revision 5599)
@@ -18,5 +18,5 @@
             binding="wsHttpBinding"
             bindingConfiguration="wsHttpBinding"
-            contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService"
+            contract="HeuristicLab.Clients.Hive.IHiveService"
             name="wsHttpBinding_IHiveService">
         <identity>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_f005pc.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_f005pc.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_f005pc.config	(revision 5599)
@@ -15,5 +15,5 @@
             </bindings>
         <client>
-            <endpoint address="http://localhost/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+            <endpoint address="http://localhost/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
               <identity>
                 <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac="/>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_services.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_services.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/app_services.config	(revision 5599)
@@ -15,5 +15,5 @@
             </bindings>
         <client>
-            <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+            <endpoint address="http://services.heuristiclab.com/Hive-3.4/HiveService.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
               <identity>
                 <certificate encodedValue="AwAAAAEAAAAUAAAAwK1+2oAmcy/mI2P2QjyiJRh0y60gAAAAAQAAACoCAAAwggImMIIBj6ADAgECAhAIkseQ2EEhgU720qJA61gqMA0GCSqGSIb3DQEBBAUAMCQxIjAgBgNVBAMTGXNlcnZpY2VzLmhldXJpc3RpY2xhYi5jb20wHhcNMTAwNTExMTExNDAyWhcNMzkxMjMxMjM1OTU5WjAkMSIwIAYDVQQDExlzZXJ2aWNlcy5oZXVyaXN0aWNsYWIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq26Bwmwc7k+4W30qLQ2j+FInEL5BuH6opDY6CSlrtt3xQS/anrhvpbf3QghLDVINzcHkzbPmm/SguG4F85QLB6xO+tJaOvRo0iEK5g3c307vMIru7FJwk/OhplEQ5J1hbDgL3zOJlrWlgtqRVxCtVdF3XroI9BctOt1NkeKv9ewIDAQABo1kwVzBVBgNVHQEETjBMgBCjbgdYd4j5JgUuJ1Wo/GxroSYwJDEiMCAGA1UEAxMZc2VydmljZXMuaGV1cmlzdGljbGFiLmNvbYIQCJLHkNhBIYFO9tKiQOtYKjANBgkqhkiG9w0BAQQFAAOBgQAb/2xk2uQad68shSPl/uixWgvFI8WkxOTBopOLaLtDxwCeZ3mWVHdV9VnixHtThubnEBXAhYOCQSIXWtQuXFWO+gH3YyjTRJY5kTmXyuvBRTn3/so5SrQ7Rdlm9hf6E5YVX3tCjAy7ybUyaDUkQfmH5vmvgvpMzRfsJ1qhnUpJiQ=="/>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs	(revision 5599)
@@ -40,5 +40,6 @@
     public Guid ResourceId { get; set; }
 
-    protected Appointment(Appointment original, Cloner cloner) : base(original, cloner) {
+    protected Appointment(Appointment original, Cloner cloner)
+      : base(original, cloner) {
       this.AllDayEvent = original.AllDayEvent;
       this.EndDate = original.EndDate;
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/MessageContainer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/MessageContainer.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/MessageContainer.cs	(revision 5599)
@@ -21,4 +21,5 @@
 
 using System;
+using System.Runtime.Serialization;
 using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -31,4 +32,5 @@
   [StorableClass]
   [Serializable]
+  [DataContract]
   public class MessageContainer : IDeepCloneable {
 
@@ -54,6 +56,9 @@
 
     [Storable]
+    [DataMember]
     public MessageType Message { get; set; }
+
     [Storable]
+    [DataMember]
     public Guid JobId { get; set; }
 
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/HeuristicLab 3.3.exe.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/HeuristicLab 3.3.exe.config	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/HeuristicLab 3.3.exe.config	(revision 5599)
@@ -95,5 +95,5 @@
         </identity>
       </endpoint>
-      <endpoint address="http://localhost:9000/Hive-3.4" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" name="wsHttpBinding_IHiveService">
+      <endpoint address="http://localhost:80/Service.svc" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="HeuristicLab.Clients.Hive.IHiveService" name="wsHttpBinding_IHiveService">
         <identity>
           <certificate encodedValue="AwAAAAEAAAAUAAAAfEKvcVixnJay+q4hCPFuO0JL5TQgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMTAxOTEwNTMxNVoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXwC5TGcAffd/0oAWHtm0s6YXVXEgXgb1AYmBkkkhkKIFJG/e/Z0KSYbJepmSJD44W3oOAVm+x1DAsZxU79HahDYgWCuHLMm1TLpwSmYOQ0kV3pGHWHhiWV7h7oGLds/eqZ2EOpaNGryfEPnrA4VmxY91vV5/2BTeVSWG6F8lRKQIDAQABo0kwRzBFBgNVHQEEPjA8gBAR7kBnMRHO5gzThEqda0wWoRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghCNN5wrUcXMmE/9xwp4TYa9MAkGBSsOAwIdBQADgYEAoPwEG4QTDXhlxERNDfsZmM2IhEpV42ppz1kEah2oYKDa/ElIMVtvqLv6flVtg18ENN/mEJWiHZ3NyP3qr2Pip+sh+/2WBiSbOaukES/CM7OJn9kJCImH7M/xqM8pxqY8IfgM6iBVrVj9uHqj3j2BBck+cYY8fKyh3CFifMIp6ac=" />
@@ -107,5 +107,5 @@
         <host>
           <baseAddresses>
-            <add baseAddress="http://localhost:9000/Hive-3.4" />
+            <add baseAddress="http://localhost:80/Service.svc" />
           </baseAddresses>
         </host>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/HiveService.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/HiveService.cs	(revision 5597)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/HiveService.cs	(revision 5599)
@@ -11,6 +11,7 @@
   /// <summary>
   /// Implementation of the Hive service (interface <see cref="IHiveService"/>).
+  /// We need 'IgnoreExtensionDataObject' Attribute for the slave to work. 
   /// </summary>
-  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
+  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, IgnoreExtensionDataObject = true)]
   public class HiveService : IHiveService {
     private DataAccess.IHiveDao dao {
