Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj	(revision 4254)
@@ -135,5 +135,4 @@
     <Compile Include="RecurrentEvent.cs" />
     <Compile Include="ResponseCalendar.cs" />
-    <Compile Include="ResponseSerializedJob.cs" />
     <Compile Include="MultiStream.cs" />
     <Compile Include="Interfaces\ISlaveFacade.cs" />
@@ -145,12 +144,10 @@
     <Compile Include="Interfaces\IServerConsoleFacade.cs" />
     <Compile Include="MessageContainer.cs" />
-    <Compile Include="ResponseJob.cs" />
     <Compile Include="HeuristicLabHiveContractsPlugin.cs" />
     <Compile Include="Interfaces\ISlaveCommunicator.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Response.cs" />
-    <Compile Include="ResponseHB.cs" />
+    <Compile Include="ResponseHeartBeat.cs" />
     <Compile Include="ResponseList.cs" />
-    <Compile Include="ResponsePlugin.cs" />
     <Compile Include="ResponseResultReceived.cs" />
     <Compile Include="StreamedObject.cs" />
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs	(revision 4254)
@@ -33,36 +33,53 @@
   [ServiceContract]
   public interface IJobManager {
+
     [OperationContract]
     ResponseList<JobDto> GetAllJobsWithFilter(State jobState, int offset, int count);
+
     [OperationContract]
     ResponseList<JobDto> GetAllJobs();
+
     [OperationContract]
     ResponseObject<JobDto> GetJobById(Guid jobId);
+
     [OperationContract]
     ResponseObject<JobDto> GetJobByIdWithDetails(Guid jobId);
+
     [OperationContract]
     ResponseObject<JobDto> AddNewJob(SerializedJob job);
+
     [OperationContract]
     Response RemoveJob(Guid jobId);
+
     [OperationContract]
     ResponseObject<JobDto> GetLastJobResultOf(Guid jobId);
+
     [OperationContract]
     ResponseObject<SerializedJob> GetLastSerializedJobResultOf(Guid jobId, bool requested, bool snapshot);
+
     [OperationContract]
     ResponseObject<JobResultList> GetAllJobResults(IEnumerable<Guid> jobIds);
+
     [OperationContract]
     Response RequestSnapshot(Guid jobId);
+
     [OperationContract]
     Response AbortJob(Guid jobId);
+
     [OperationContract]
     ResponseList<ProjectDto> GetAllProjects();
+
     [OperationContract]
     Response CreateProject(ProjectDto project);
+
     [OperationContract]
     Response ChangeProject(ProjectDto project);
+
     [OperationContract]
     Response DeleteProject(Guid projectId);
+
     [OperationContract]
     ResponseList<JobDto> GetJobsByProject(Guid projectId);
+
     [OperationContract]
     ResponseObject<JobDto> AddJobWithGroupStrings(SerializedJob job, IEnumerable<string> resources);
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveCommunicator.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveCommunicator.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveCommunicator.cs	(revision 4254)
@@ -34,33 +34,32 @@
   [ServiceContract]
   public interface ISlaveCommunicator {
+
     [OperationContract]
     Response Login(ClientDto clientInfo);
+
     [OperationContract]
-    ResponseHB ProcessHeartBeat(HeartBeatData hbData);
+    ResponseHeartBeat ProcessHeartBeat(HeartBeatData hbData);
+
     [OperationContract]
-    ResponseJob SendJob(Guid clientId);
-    //[OperationContract]
-    //ResponseSerializedJob SendSerializedJob(Guid clientId);
+    ResponseObject<JobDto> GetJob(Guid clientId);
+
     [OperationContract]
-    ResponseResultReceived StoreFinishedJobResult(Guid clientId, 
-      Guid jobId, 
-      byte[] result, 
-      double percentage,
-      string exception);
+    ResponseResultReceived StoreFinishedJobResult(Guid clientId, Guid jobId, byte[] result, double percentage, string exception);
+
     [OperationContract]
-    ResponseResultReceived ProcessSnapshot(Guid clientId,
-      Guid jobId, 
-      byte[] result, 
-      double percentage, 
-      string exception);
+    ResponseResultReceived ProcessSnapshot(Guid clientId, Guid jobId, byte[] result, double percentage, string exception);
+
     [OperationContract]
     Response Logout(Guid clientId);
+
     [OperationContract]
     Response IsJobStillNeeded(Guid jobId);
+
     [OperationContract]
-    ResponsePlugin SendPlugins(List<HivePluginInfoDto> pluginList);
+    ResponseList<CachedHivePluginInfoDto> SendPlugins(List<HivePluginInfoDto> pluginList);
 
     [OperationContract]
     ResponseCalendar GetCalendar(Guid clientId);
+
     [OperationContract]
     Response SetCalendarStatus(Guid clientId, CalendarState state);
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveManager.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveManager.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/ISlaveManager.cs	(revision 4254)
@@ -33,6 +33,8 @@
   [ServiceContract]
   public interface ISlaveManager {
+
     [OperationContract]
     ResponseList<ClientDto> GetAllClients();
+
     [OperationContract]
     [ServiceKnownType(typeof (ResourceDto))]
@@ -40,10 +42,14 @@
     [ServiceKnownType(typeof(ClientGroupDto))]
     ResponseList<ClientGroupDto> GetAllClientGroups();
+
     [OperationContract]
     ResponseObject<ClientGroupDtoList> GetAllGroupsOfResource(Guid resourceId);
+
     [OperationContract]
     ResponseObject<ClientGroupDto> AddClientGroup(ClientGroupDto clientGroup);
+
     [OperationContract]
     Response DeleteClientGroup(Guid clientGroupId);
+
     [OperationContract]
     [ServiceKnownType(typeof(ResourceDto))]
@@ -51,10 +57,14 @@
     [ServiceKnownType(typeof(ClientGroupDto))]
     Response AddResourceToGroup(Guid clientGroupId, ResourceDto resource);
+
     [OperationContract]
     Response DeleteResourceFromGroup(Guid clientGroupId, Guid resourceId);
+
     [OperationContract]
     ResponseList<UpTimeStatisticsDto> GetAllUpTimeStatistics();
+
     [OperationContract]
     ResponseList<AppointmentDto> GetUptimeCalendarForResource(Guid guid);
+
     [OperationContract]
     Response SetUptimeCalendarForResource(Guid guid, IEnumerable<AppointmentDto> appointments, bool isForced);
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/MessageContainer.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/MessageContainer.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/MessageContainer.cs	(revision 4254)
@@ -58,6 +58,6 @@
       MessageContainer clone = (MessageContainer)Activator.CreateInstance(this.GetType(), true);
       cloner.RegisterClonedObject(this, clone);
-      //clone.StatusMessage = this.StatusMessage;
-      //clone.Success = this.Success;
+      clone.Message = this.Message;
+      clone.JobId = this.JobId;
       return clone;
     }
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHB.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHB.cs	(revision 4253)
+++ 	(revision )
@@ -1,50 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Runtime.Serialization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Hive.Contracts {
-
-
-  /// <summary>
-  /// Response Heartbeat class
-  /// Return value to hearbeats sent by the client
-  /// </summary>
-  [StorableClass]
-  [DataContract]
-  public class ResponseHB : Response {
-    [Storable]
-    [DataMember]
-    public List<MessageContainer> ActionRequest { get; set; }
-
-    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
-      ResponseHB clone = (ResponseHB) base.Clone(cloner);
-      clone.ActionRequest = (from ar in this.ActionRequest
-                            select (MessageContainer) cloner.Clone(ar)).ToList();
-      return clone;
-    }
-  }
-}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHeartBeat.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHeartBeat.cs	(revision 4254)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHeartBeat.cs	(revision 4254)
@@ -0,0 +1,50 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.Serialization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Hive.Contracts {
+
+
+  /// <summary>
+  /// Response Heartbeat class
+  /// Return value to hearbeats sent by the client
+  /// </summary>
+  [StorableClass]
+  [DataContract]
+  public class ResponseHeartBeat : Response {
+    [Storable]
+    [DataMember]
+    public List<MessageContainer> ActionRequest { get; set; }
+
+    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
+      ResponseHeartBeat clone = (ResponseHeartBeat) base.Clone(cloner);
+      clone.ActionRequest = (from ar in this.ActionRequest
+                            select (MessageContainer) cloner.Clone(ar)).ToList();
+      return clone;
+    }
+  }
+}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseObject.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseObject.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseObject.cs	(revision 4254)
@@ -31,4 +31,5 @@
   [StorableClass]
   [DataContract]
+  [Serializable]
   public class ResponseObject<T> : Response
     where T : IDeepCloneable {
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponsePlugin.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponsePlugin.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponsePlugin.cs	(revision 4254)
@@ -11,5 +11,5 @@
   [DataContract]
   [Serializable]
-  public class ResponsePlugin : Response {
+  public class ResponsePlugin : ResponseBase {
     [Storable]
     [DataMember]
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseSerializedJob.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseSerializedJob.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseSerializedJob.cs	(revision 4254)
@@ -37,5 +37,5 @@
   [DataContract]
   [Serializable]
-  public class ResponseSerializedJob : Response {
+  public class ResponseSerializedJob : ResponseBase {
     [Storable]
     [DataMember]
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs	(revision 4254)
@@ -13,45 +13,40 @@
 namespace HeuristicLab.Hive.Server.Core {
   internal class DefaultScheduler : IScheduler {
-    //private ISessionFactory factory;
 
-    private static Mutex jobLock =
-      new Mutex();
+    private static object jobLock = new object();
 
     #region IScheduler Members
 
-    public DefaultScheduler() {
-      //factory = ServiceLocator.GetSessionFactory();
-    }
+    public DefaultScheduler() { }
 
-    public bool ExistsJobForSlave(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
-      List<JobDto> allOfflineJobsForSlave =
-        new List<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(State.Offline, hbData.FreeCores, hbData.FreeMemory, hbData.SlaveId));
+    public bool ExistsJobForSlave(HeartBeatData hbData) {
+      List<JobDto> allOfflineJobsForSlave = new List<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(State.Offline, hbData.FreeCores, hbData.FreeMemory, hbData.SlaveId));
       return (allOfflineJobsForSlave != null && allOfflineJobsForSlave.Count > 0);
     }
 
-    public HeuristicLab.Hive.Contracts.BusinessObjects.JobDto GetNextJobForSlave(Guid slaveId) {
-      /// Critical section ///
-      jobLock.WaitOne();
-      JobDto jobToCalculate = null;
-      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
-        ClientDto slave = DaoLocator.ClientDao.FindById(slaveId);
-        LinkedList<JobDto> allOfflineJobsForSlave =
-          new LinkedList<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(State.Offline, slave.NrOfFreeCores, slave.FreeMemory, slave.Id));        
-        if (allOfflineJobsForSlave != null && allOfflineJobsForSlave.Count > 0) {
-          jobToCalculate = allOfflineJobsForSlave.First.Value;
-          jobToCalculate.State = State.Calculating;
-          jobToCalculate.Client = slave;
-          jobToCalculate.Client.State = State.Calculating;
-          jobToCalculate.DateCalculated = DateTime.Now;
-          DaoLocator.JobDao.AssignSlaveToJob(slave.Id, jobToCalculate.Id);
-          DaoLocator.JobDao.Update(jobToCalculate);
-          DaoLocator.ClientDao.Update(jobToCalculate.Client);
+    public JobDto GetNextJobForSlave(Guid slaveId) {
+      lock (jobLock) {
+        /// Critical section ///
+        JobDto jobToCalculate = null;
+        using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
+          ClientDto slave = DaoLocator.ClientDao.FindById(slaveId);
+          LinkedList<JobDto> allOfflineJobsForSlave =
+            new LinkedList<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(State.Offline, slave.NrOfFreeCores, slave.FreeMemory, slave.Id));
+          if (allOfflineJobsForSlave != null && allOfflineJobsForSlave.Count > 0) {
+            jobToCalculate = allOfflineJobsForSlave.First.Value;
+            jobToCalculate.State = State.Calculating;
+            jobToCalculate.Client = slave;
+            jobToCalculate.Client.State = State.Calculating;
+            jobToCalculate.DateCalculated = DateTime.Now;
+            DaoLocator.JobDao.AssignSlaveToJob(slave.Id, jobToCalculate.Id);
+            DaoLocator.JobDao.Update(jobToCalculate);
+            DaoLocator.ClientDao.Update(jobToCalculate.Client);
+          }
+          scope.Complete();
         }
-        scope.Complete();
+        /// End Critical section ///
+
+        return jobToCalculate;
       }
-      jobLock.ReleaseMutex();
-      /// End Critical section ///
-
-      return jobToCalculate;
     }
 
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/SlaveFacade.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/SlaveFacade.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/SlaveFacade.cs	(revision 4254)
@@ -55,5 +55,5 @@
     }
 
-    public ResponseHB ProcessHeartBeat(HeartBeatData hbData) {
+    public ResponseHeartBeat ProcessHeartBeat(HeartBeatData hbData) {
       using (contextFactory.GetContext()) {
         return slaveCommunicator.ProcessHeartBeat(hbData);
@@ -61,7 +61,7 @@
     }
 
-    public ResponseJob SendJob(Guid clientId) {
+    public ResponseObject<JobDto> GetJob(Guid clientId) {
       using (contextFactory.GetContext()) {
-        return slaveCommunicator.SendJob(clientId);
+        return slaveCommunicator.GetJob(clientId);
       }
     }
@@ -85,5 +85,5 @@
     }
 
-    public ResponsePlugin SendPlugins(List<HivePluginInfoDto> pluginList) {
+    public ResponseList<CachedHivePluginInfoDto> SendPlugins(List<HivePluginInfoDto> pluginList) {
       return slaveCommunicator.SendPlugins(pluginList);      
     }
@@ -118,10 +118,10 @@
         MultiStream stream = new MultiStream();
 
-        ResponseJob job = null;
+        ResponseObject<JobDto> job = null;
 
-        job = ServiceLocator.GetSlaveCommunicator().SendJob(clientId);
+        job = ServiceLocator.GetSlaveCommunicator().GetJob(clientId);
 
         //first send response
-        stream.AddStream(new StreamedObject<ResponseJob>(job));
+        stream.AddStream(new StreamedObject<ResponseObject<JobDto>>(job));
 
         IJobManager jobManager = ServiceLocator.GetJobManager();
@@ -130,6 +130,6 @@
         //second stream the job binary data
         MemoryStream memoryStream = new MemoryStream();
-        if (job.Job != null)
-          stream.AddStream(new MemoryStream(internalJobManager.GetSerializedJobDataById(job.Job.Id)));
+        if (job.Obj != null)
+          stream.AddStream(new MemoryStream(internalJobManager.GetSerializedJobDataById(job.Obj.Id)));
 
         OperationContext clientContext = OperationContext.Current;
@@ -145,5 +145,5 @@
 
     public Stream SendStreamedPlugins(List<HivePluginInfoDto> pluginList) {
-      return new StreamedObject<ResponsePlugin>(this.SendPlugins(pluginList));
+      return new StreamedObject<ResponseList<CachedHivePluginInfoDto>>(this.SendPlugins(pluginList));
     }
 
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj	(revision 4254)
@@ -125,5 +125,4 @@
     <Compile Include="Authorization\HivePermissionManager.cs" />
     <Compile Include="HeuristicLabHiveServerCorePlugin.cs" />
-    <Compile Include="HiveServerMessages.Designer.cs" />
     <Compile Include="InternalInterfaces\IHivePermissionManager.cs" />
     <Compile Include="InternalInterfaces\IInternalSlaveCommunicator.cs" />
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HiveServerMessages.Designer.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HiveServerMessages.Designer.cs	(revision 4253)
+++ 	(revision )
@@ -1,81 +1,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:2.0.50727.3053
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.Hive.Server.Core {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class HiveServerMessages {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal HiveServerMessages() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Hive.Server.Core.HiveServerMessages", typeof(HiveServerMessages).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to The Login was successfull.
-        /// </summary>
-        internal static string LoginSuccess {
-            get {
-                return ResourceManager.GetString("LoginSuccess", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to A User with this GUID is allready logged in.
-        /// </summary>
-        internal static string UserAllreadyOnline {
-            get {
-                return ResourceManager.GetString("UserAllreadyOnline", resourceCulture);
-            }
-        }
-    }
-}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/JobManager.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/JobManager.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/JobManager.cs	(revision 4254)
@@ -41,5 +41,4 @@
 namespace HeuristicLab.Hive.Server.Core {
   internal class JobManager : IJobManager, IInternalJobManager {
-    //ISessionFactory factory;
     private ILifecycleManager lifecycleManager;
 
@@ -47,9 +46,8 @@
 
     public JobManager() {
-      //factory = ServiceLocator.GetSessionFactory();
       lifecycleManager = ServiceLocator.GetLifecycleManager();
 
       lifecycleManager.RegisterStartup(new EventHandler(lifecycleManager_OnStartup));
-      lifecycleManager.RegisterStartup(new EventHandler(lifecycleManager_OnShutdown));
+      lifecycleManager.RegisterShutdown(new EventHandler(lifecycleManager_OnShutdown));
     }
 
@@ -61,15 +59,10 @@
       Logger.Info("Searching for dead Jobs");
 
-      // [chn] why is transaction management done here?
-      using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
-        List<JobDto> allJobs = new List<JobDto>(DaoLocator.JobDao.FindAll());
-        foreach (JobDto curJob in allJobs) {
-          if (curJob.State != State.Calculating && curJob.State != State.Finished) {
-            DaoLocator.JobDao.SetJobOffline(curJob);
-          }
-        }
-        scope.Complete();
-      }
-      // DaoLocator.DestroyContext();
+      List<JobDto> allJobs = new List<JobDto>(DaoLocator.JobDao.FindAll());
+      foreach (JobDto curJob in allJobs) {
+        if (curJob.State != State.Calculating && curJob.State != State.Finished) {
+          DaoLocator.JobDao.SetJobOffline(curJob);
+        }
+      }
     }
 
@@ -322,4 +315,9 @@
     }
 
+    /// <summary>
+    /// Returns the current state for all jobs requested
+    /// </summary>
+    /// <param name="jobIds"></param>
+    /// <returns></returns>
     public ResponseObject<JobResultList> GetAllJobResults(IEnumerable<Guid> jobIds) {
       ResponseObject<JobResultList> response = new ResponseObject<JobResultList>();
@@ -334,5 +332,5 @@
           Exception = job.Exception,
           Percentage = job.Percentage
-        });        
+        });
       }
       response.Obj = jobResultList;
@@ -340,28 +338,4 @@
       response.StatusMessage = ApplicationConstants.RESPONSE_JOB_ALL_JOBS;
       return response;
-    }
-
-    public ResponseList<ProjectDto> GetAllProjects() {
-      return null;
-    }
-
-    private Response createUpdateProject(ProjectDto project) {
-      return null;
-    }
-
-    public Response CreateProject(ProjectDto project) {
-      return createUpdateProject(project);
-    }
-
-    public Response ChangeProject(ProjectDto project) {
-      return createUpdateProject(project);
-    }
-
-    public Response DeleteProject(Guid projectId) {
-      return null;
-    }
-
-    public ResponseList<JobDto> GetJobsByProject(Guid projectId) {
-      return null;
     }
 
@@ -376,4 +350,30 @@
     #endregion
 
+    #region Project handling (currently unimplemented)
+
+    public ResponseList<ProjectDto> GetAllProjects() {
+      throw new NotImplementedException();
+    }
+
+    private Response CreateUpdateProject(ProjectDto project) {
+      throw new NotImplementedException();
+    }
+
+    public Response CreateProject(ProjectDto project) {
+      return CreateUpdateProject(project);
+    }
+
+    public Response ChangeProject(ProjectDto project) {
+      return CreateUpdateProject(project);
+    }
+
+    public Response DeleteProject(Guid projectId) {
+      throw new NotImplementedException();
+    }
+
+    public ResponseList<JobDto> GetJobsByProject(Guid projectId) {
+      throw new NotImplementedException();
+    }
+    #endregion
   }
 }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/ServiceLocator.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/ServiceLocator.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/ServiceLocator.cs	(revision 4254)
@@ -97,5 +97,5 @@
     public static ILifecycleManager GetLifecycleManager() {
       if (lifecycleManager == null) {
-        lifecycleManager = new LifecycleManager();
+        lifecycleManager = ApplicationManager.Manager.GetInstances<ILifecycleManager>().First();
       }
       return lifecycleManager;
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs	(revision 4254)
@@ -248,8 +248,8 @@
     /// <param name="hbData"></param>
     /// <returns></returns>
-    public ResponseHB ProcessHeartBeat(HeartBeatData hbData) {
+    public ResponseHeartBeat ProcessHeartBeat(HeartBeatData hbData) {
       Logger.Debug("BEGIN Processing Heartbeat for Client " + hbData.SlaveId);
 
-      ResponseHB response = new ResponseHB();
+      ResponseHeartBeat response = new ResponseHeartBeat();
       response.ActionRequest = new List<MessageContainer>();
 
@@ -342,5 +342,5 @@
     /// <param name="clientAdapter"></param>
     /// <param name="response"></param>
-    private void ProcessJobProcess(HeartBeatData hbData, ResponseHB response) {
+    private void ProcessJobProcess(HeartBeatData hbData, ResponseHeartBeat response) {
       Logger.Debug("Started for Client " + hbData.SlaveId);
       List<JobDto> jobsOfClient = new List<JobDto>(DaoLocator.JobDao.FindActiveJobsOfSlave(DaoLocator.ClientDao.FindById(hbData.SlaveId)));
@@ -432,12 +432,11 @@
     /// <param name="clientId"></param>
     /// <returns></returns>
-    public ResponseJob SendJob(Guid clientId) {
-
-      ResponseJob response = new ResponseJob();
+    public ResponseObject<JobDto> GetJob(Guid clientId) {
+      ResponseObject<JobDto> response = new ResponseObject<JobDto>();
 
       JobDto job2Calculate = scheduler.GetNextJobForSlave(clientId);
       if (job2Calculate != null) {
-        response.Job = job2Calculate;
-        response.Job.PluginsNeeded = DaoLocator.PluginInfoDao.GetPluginDependenciesForJob(response.Job);
+        response.Obj = job2Calculate;
+        response.Obj.PluginsNeeded = DaoLocator.PluginInfoDao.GetPluginDependenciesForJob(response.Obj);
         response.Success = true;
         Logger.Info("Job pulled: " + job2Calculate + " for user " + clientId);
@@ -449,11 +448,8 @@
       } else {
         response.Success = false;
-        response.Job = null;
+        response.Obj = null;
         response.StatusMessage = ApplicationConstants.RESPONSE_COMMUNICATOR_NO_JOBS_LEFT;
         Logger.Info("No more Jobs left for " + clientId);
       }
-
-
-
       return response;
     }
@@ -711,6 +707,6 @@
     }
 
-    public ResponsePlugin SendPlugins(List<HivePluginInfoDto> pluginList) {
-      ResponsePlugin response = new ResponsePlugin();
+    public ResponseList<CachedHivePluginInfoDto> SendPlugins(List<HivePluginInfoDto> pluginList) {
+      ResponseList<CachedHivePluginInfoDto> response = new ResponseList<CachedHivePluginInfoDto>();
       foreach (HivePluginInfoDto pluginInfo in pluginList) {
         if (pluginInfo.Update) {
@@ -719,5 +715,5 @@
             ApplicationManager.Manager.Plugins.Where(pd => pd.Name == pluginInfo.Name && pd.Version.Major == pluginInfo.Version.Major && pd.Version.Minor == pluginInfo.Version.Minor && pd.Version.Revision > pluginInfo.Version.Revision).SingleOrDefault();
           if (ipd != null) {
-            response.Plugins.Add(convertPluginDescriptorToDto(ipd));
+            response.List.Add(convertPluginDescriptorToDto(ipd));
           }
         } else {
@@ -725,5 +721,5 @@
             ApplicationManager.Manager.Plugins.Where(pd => pd.Name == pluginInfo.Name && pd.Version.Major == pluginInfo.Version.Major && pd.Version.Minor == pluginInfo.Version.Minor && pd.Version.Revision >= pluginInfo.Version.Revision).SingleOrDefault();
           if (ipd != null) {
-            response.Plugins.Add(convertPluginDescriptorToDto(ipd));
+            response.List.Add(convertPluginDescriptorToDto(ipd));
           } else {
             response.Success = false;
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj	(revision 4254)
@@ -78,4 +78,7 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="HeuristicLab.Common.Resources-3.3">
+      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Common.Resources-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
       <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
@@ -133,25 +136,6 @@
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Resources.resx</DependentUpon>
-      <DesignTime>True</DesignTime>
-    </Compile>
     <None Include="Properties\AssemblyInfo.frame" />
     <None Include="HeuristicLab.snk" />
-    <None Include="Properties\Settings.settings">
-      <Generator>SettingsSingleFileGenerator</Generator>
-      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-    </None>
-    <Compile Include="Properties\Settings.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Settings.settings</DependentUpon>
-      <DesignTimeSharedInput>True</DesignTimeSharedInput>
-    </Compile>
   </ItemGroup>
   <ItemGroup>
@@ -164,7 +148,4 @@
       <Name>HeuristicLab.Hive.Server.Core-3.3</Name>
     </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Resources\HeuristicLab.ico" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs	(revision 4254)
@@ -30,4 +30,5 @@
 using HeuristicLab.Hive.Contracts.Interfaces;
 using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Hive.Server.Core;
 
 namespace HeuristicLab.Hive.Server {
@@ -162,17 +163,13 @@
       baseAddrDict.Add(STR_ExecutionEngineFacade, StartService(Services.ExecutionEngineFacade, addresses[index], WcfSettings.DEFAULTPORT));
 
-      // [chn] why is lifecyclemanager instantiated here?? shouldnt Core.ServiceLocator be used?
-      IEnumerable<ILifecycleManager> lifecycleManagers = ApplicationManager.Manager.GetInstances<ILifecycleManager>();
-      if (lifecycleManagers.Count() > 0) {
-        ILifecycleManager lifecycleManager = lifecycleManagers.First();
+      ILifecycleManager lifecycleManager = ServiceLocator.GetLifecycleManager();
 
-        lifecycleManager.Init();
+      lifecycleManager.Init();
 
-        // [chn] remove gui code here, how to display any response from server?
-        Form mainForm = new MainForm(baseAddrDict);
-        Application.Run(mainForm);
+      Form mainForm = new MainForm(baseAddrDict);
+      Application.Run();
 
-        lifecycleManager.Shutdown();
-      }
+      lifecycleManager.Shutdown();
+      
       StopService(Services.All);
     }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerPlugin.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerPlugin.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerPlugin.cs	(revision 4254)
@@ -29,4 +29,5 @@
   [Plugin("HeuristicLab.Hive.Server", "3.3")]
   [PluginFile("HeuristicLab.Hive.Server-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
   [PluginDependency("HeuristicLab.Hive.Contracts", "3.3")]
   [PluginDependency("HeuristicLab.Hive.Server.Core", "3.3")]
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.Designer.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.Designer.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.Designer.cs	(revision 4254)
@@ -51,8 +51,11 @@
           // rtfServices
           // 
+          this.rtfServices.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                      | System.Windows.Forms.AnchorStyles.Left)
+                      | System.Windows.Forms.AnchorStyles.Right)));
           this.rtfServices.Location = new System.Drawing.Point(12, 25);
           this.rtfServices.Name = "rtfServices";
           this.rtfServices.ReadOnly = true;
-          this.rtfServices.Size = new System.Drawing.Size(280, 121);
+          this.rtfServices.Size = new System.Drawing.Size(377, 129);
           this.rtfServices.TabIndex = 1;
           this.rtfServices.Text = "";
@@ -96,10 +99,8 @@
           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-          this.ClientSize = new System.Drawing.Size(304, 166);
+          this.ClientSize = new System.Drawing.Size(401, 166);
           this.Controls.Add(this.rtfServices);
           this.Controls.Add(this.label1);
-          this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
           this.Name = "MainForm";
-          this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
           this.Text = "Hive Server";
           this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/MainForm.cs	(revision 4254)
@@ -7,51 +7,45 @@
 using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.Hive.Server.Properties;
 
-namespace HeuristicLab.Hive.Server
-{
-    public partial class MainForm : Form {
-        public MainForm(Dictionary<string, Uri> addresses) {
-          InitializeComponent();
-          this.Visible = false;
-          this.Hide();
+namespace HeuristicLab.Hive.Server {
+  public partial class MainForm : Form {
+    public MainForm(Dictionary<string, Uri> addresses) {
+      InitializeComponent();
 
-          Uri uri;
-          StringBuilder servicesTxt = new StringBuilder();
-          addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ClientCommunicator, out uri);
-          if (uri != null)
-            servicesTxt.AppendLine(String.Format("Server Client: {0}", uri));
-          addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ServerConsoleFacade, out uri);
-          if (uri != null)
-            servicesTxt.AppendLine(String.Format("Server Console: {0}", uri));
-          addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ExecutionEngineFacade, out uri);
-          if (uri != null)
-            servicesTxt.AppendLine(String.Format("Execution Engine: {0}", uri));
+      Uri uri;
+      StringBuilder servicesTxt = new StringBuilder();
+      addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ClientCommunicator, out uri);
+      if (uri != null)
+        servicesTxt.AppendLine(String.Format("Server Client: {0}", uri));
+      addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ServerConsoleFacade, out uri);
+      if (uri != null)
+        servicesTxt.AppendLine(String.Format("Server Console: {0}", uri));
+      addresses.TryGetValue(HeuristicLabHiveServerApplication.STR_ExecutionEngineFacade, out uri);
+      if (uri != null)
+        servicesTxt.AppendLine(String.Format("Execution Engine: {0}", uri));
 
-          rtfServices.AppendText(servicesTxt.ToString());
+      rtfServices.AppendText(servicesTxt.ToString());
 
-          ni.Icon = Resources.HeuristicLab;
-          ni.BalloonTipTitle = "HL Hive Server Services";
-          ni.BalloonTipText = servicesTxt.ToString();
-          ni.BalloonTipIcon = ToolTipIcon.Info;
-          ni.Text = "HL Hive Server Services";
-          ni.ShowBalloonTip(10000);
-        }
+      ni.Icon = HeuristicLab.Common.Resources.HeuristicLab.Icon;
+      ni.BalloonTipTitle = "HL Hive Server Services";
+      ni.BalloonTipText = servicesTxt.ToString();
+      ni.BalloonTipIcon = ToolTipIcon.Info;
+      ni.Text = "HL Hive Server Services";
+      ni.ShowBalloonTip(10000);
+    }
 
-        private void CloseApp(object sender, EventArgs e) {
-          Dispose();
-        }
+    private void CloseApp(object sender, EventArgs e) {
+      this.Dispose();
+      Application.Exit();
+    }
 
-        private void ShowInfo(object sender, EventArgs e) {
-          this.Visible = true;
-        }
+    private void ShowInfo(object sender, EventArgs e) {
+      this.Visible = true;
+    }
 
-        private void btnClose_Click(object sender, EventArgs e) {
-          this.Visible = false;
-        }
-
-        private void MainForm_FormClosing(object sender, FormClosingEventArgs e) {          
-        }
-
+    private void MainForm_FormClosing(object sender, FormClosingEventArgs e) {
+      e.Cancel = true;
+      this.Visible = false;
     }
+  }
 }
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Resources.Designer.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Resources.Designer.cs	(revision 4253)
+++ 	(revision )
@@ -1,70 +1,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.1
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.Hive.Server.Properties {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-        
-        private static global::System.Resources.ResourceManager resourceMan;
-        
-        private static global::System.Globalization.CultureInfo resourceCulture;
-        
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Hive.Server.Properties.Resources", typeof(Resources).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        internal static System.Drawing.Icon HeuristicLab {
-            get {
-                object obj = ResourceManager.GetObject("HeuristicLab", resourceCulture);
-                return ((System.Drawing.Icon)(obj));
-            }
-        }
-    }
-}
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Resources.resx
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Resources.resx	(revision 4253)
+++ 	(revision )
@@ -1,124 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="HeuristicLab" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-</root>
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Settings.Designer.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Settings.Designer.cs	(revision 4253)
+++ 	(revision )
@@ -1,26 +1,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.1
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.Hive.Server.Properties {
-    
-    
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-        
-        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-        
-        public static Settings Default {
-            get {
-                return defaultInstance;
-            }
-        }
-    }
-}
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Settings.settings
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/Properties/Settings.settings	(revision 4253)
+++ 	(revision )
@@ -1,7 +1,0 @@
-﻿<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
-  <Profiles>
-    <Profile Name="(Default)" />
-  </Profiles>
-  <Settings />
-</SettingsFile>
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/ServiceCallInterception.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/ServiceCallInterception.cs	(revision 4253)
+++ 	(revision )
@@ -1,93 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using AopAlliance.Intercept;
-using System.Threading;
-using HeuristicLab.Hive.Server.LINQDataAccess;
-using System.Transactions;
-using HeuristicLab.Hive.Contracts;
-using HeuristicLab.Tracing;
-using System.Reflection;
-using HeuristicLab.Hive.Server.Core;
-
-namespace HeuristicLab.Hive.Server {
-  internal class ServiceCallInterception : IMethodInterceptor {
-    private const bool UseTransactions = true;
-
-    public object Invoke(IMethodInvocation invocation) {
-      bool userTransaction = false;
-
-      DateTime start = DateTime.Now;
-      Logger.Info("Entering Method: " + invocation.Method.Name);
-
-      if (!ContextFactory.IsContextNull()) {
-        Logger.Info("Not null context found - why wasn't this disposed?");
-        try {
-          Logger.Info("Trying to dispose");
-          ContextFactory.Context.Dispose();
-        }
-        catch (Exception e) {
-          Logger.Error(e);
-        }
-        ContextFactory.Context = null;
-      }
-      Logger.Info("Context info: Timeout: " + ContextFactory.Context.Connection.ConnectionTimeout + " | " +
-                  ContextFactory.Context.Connection.State + " | Conn: " + ContextFactory.Context + " | HashCode is: " +
-                  ContextFactory.Context.Connection.GetHashCode());
-      Object obj = null;
-
-      Object[] attributes = invocation.Method.GetCustomAttributes(typeof(SpringTransaction), true);
-      foreach (Object o in attributes) {
-        SpringTransaction st = (SpringTransaction)o;
-        userTransaction = st.UserTransaction;
-      }
-      if (UseTransactions && !userTransaction) {
-        using (
-          TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
-          try {
-            Logger.Debug("Current Transaction Isolation level is: " + Transaction.Current.IsolationLevel);
-            obj = invocation.Proceed();
-            scope.Complete();
-          }
-          catch (Exception e) {
-            Logger.Error("Exception occured during method invocation", e);
-            Logger.Error("Inner Exception: ", e.InnerException);
-          }
-          finally {
-            ContextFactory.Context.Dispose();
-            Logger.Debug("Disposed Context");
-            ContextFactory.Context = null;
-            Logger.Debug("Set Context Null");
-          }
-        }
-      } else {
-        try {
-          obj = invocation.Proceed();
-        }
-        catch (Exception e) {
-          Logger.Error("Exception occured during method invocation", e);
-        }
-        finally {
-          ContextFactory.Context.Dispose();
-          Logger.Debug("Disposed Context");
-          ContextFactory.Context = null;
-          Logger.Debug("Set Context Null");
-        }
-      }
-   
-      TimeSpan ts = DateTime.Now - start;
-      if (ts.Seconds > 2) {
-        Logger.Warn("Invocation took: " + ts);
-      } else if (ts.Seconds > 10) {
-        Logger.Error("Invocation took: " + ts);
-      } else {
-        Logger.Info("Invocation took: " + ts);
-        ;
-      }
-      Logger.Info("Leaving Method: " + invocation.Method.Name);
-
-      return obj;
-    }
-  }
-}
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Common/3.3/Logging.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Common/3.3/Logging.cs	(revision 4253)
+++ 	(revision )
@@ -1,108 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Diagnostics;
-using HeuristicLab.Tracing;
-
-namespace HeuristicLab.Hive.Client.Common {
-  /// <summary>
-  /// The Logging class uses the Windows Event logging mechanism. It writes the logs to a custom log 
-  /// called "Hive Client". For the creation of the Hive Client Log the program must be executed with
-  /// Administrator privileges   
-  /// </summary>
-  public class Logging {      
-    private static Logging instance = null;
-    /// <summary>
-    /// This is an implementation of the singleton design pattern.
-    /// </summary>
-    /// <returns>the instance of the logger</returns>
-    public static Logging Instance { 
-      get {
-        if (instance == null)
-         instance = new Logging();
-        return instance;
-      } 
-      set {}
-    } 
-    
-    static Logging GetInstance() {
-      if (instance == null)
-        instance = new Logging();
-      return instance;
-    }
-
-    private Logging() {      
-      //eventLogger = new EventLog("Hive Client");          
-    }
-
-    /// <summary>
-    /// Writes an Info Log-Entry
-    /// </summary>
-    /// <param name="source">string representation of the caller</param>
-    /// <param name="message">the message</param>
-    public void Info(String source, String message) {
-      HiveLogger.Info(source + ": " + message);
-
-      //DateTime current = DateTime.Now;
-      ///Debug.WriteLine(current + " - " + source + ": " + message);
-
-    //  eventLogger.Source = source;
-    //  eventLogger.WriteEntry(message);      
-    //  eventLogger.Close();
-    }
-
-    /// <summary>
-    /// Writes an Error Log-Entry
-    /// </summary>
-    /// <param name="source">string representation of the caller</param>
-    /// <param name="message">the message</param>
-    public void Error(String source, String message) {
-      HiveLogger.Error(source + ": " + message);
-      
-      //DateTime current = DateTime.Now;
-      //Debug.WriteLine(current + " - " + source + ": " + message);
-      
-      //eventLogger.Source = source;
-      //, EventLogEntryType.Error
-      //eventLogger.WriteEntry(message);
-      //eventLogger.Close();
-    }
-
-    /// <summary>
-    /// Writes an Error Log-Entry
-    /// </summary>
-    /// <param name="source">string representation of the caller</param>
-    /// <param name="message">the message</param>
-    /// <param name="e">the exception</param>
-    public void Error(String source, String message, Exception e) {
-      HiveLogger.Error(source + ": " + message, e);
-      //DateTime current = DateTime.Now;
-      //Debug.WriteLine(current + " - " + source + ": " + e + message);
-    //  eventLogger.Source = source;
-    //  eventLogger.WriteEntry(message +"\n" + e.ToString());
-    //  eventLogger.Close();
-    }
-  }
-}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/GetJobCompletedEventArgs.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/GetJobCompletedEventArgs.cs	(revision 4254)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/GetJobCompletedEventArgs.cs	(revision 4254)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+
+namespace HeuristicLab.Hive.Slave.Communication.ServerService {
+  public partial class GetJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    /// <summary>
+    /// Contains the serialized bytestream of the job
+    /// </summary>
+    public byte[] Data {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return (byte[])this.results[1];
+      }
+    }
+  }
+}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/HeuristicLab.Hive.Slave.Communication-3.3.csproj	(revision 4254)
@@ -111,5 +111,5 @@
     <Compile Include="HeuristicLabHiveSlaveCommunicationPlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="SendJobCompletedEventArgs.cs" />
+    <Compile Include="GetJobCompletedEventArgs.cs" />
     <Compile Include="Service References\ServerService\Reference.cs">
       <AutoGen>True</AutoGen>
@@ -123,4 +123,7 @@
     <None Include="HeuristicLab.snk" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.BusinessObjects.JobDto.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.Hive.Contracts.ResponseHeartBeat.datasource" />
+    <None Include="Properties\DataSources\HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto.datasource" />
     <None Include="Service References\ServerService\Arrays1.xsd">
       <SubType>Designer</SubType>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.BusinessObjects.JobDto.datasource
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.BusinessObjects.JobDto.datasource	(revision 4254)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.BusinessObjects.JobDto.datasource	(revision 4254)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="JobDto" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.BusinessObjects.JobDto, HeuristicLab.Hive.Contracts-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHeartBeat.datasource
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHeartBeat.datasource	(revision 4254)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.Hive.Contracts.ResponseHeartBeat.datasource	(revision 4254)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="ResponseHeartBeat" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Hive.Contracts.ResponseHeartBeat, HeuristicLab.Hive.Contracts-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto.datasource
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto.datasource	(revision 4254)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Properties/DataSources/HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto.datasource	(revision 4254)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="CachedHivePluginInfoDto" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto, HeuristicLab.Hive.Contracts-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec</TypeInfo>
+</GenericObjectDataSource>
Index: anches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/SendJobCompletedEventArgs.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/SendJobCompletedEventArgs.cs	(revision 4253)
+++ 	(revision )
@@ -1,36 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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;
-
-namespace HeuristicLab.Hive.Slave.Communication.ServerService {
-  public partial class SendJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    /// <summary>
-    /// Contains the serialized bytestream of the job
-    /// </summary>
-    public byte[] Data {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return (byte[])this.results[1];
-      }
-    }
-  }
-}
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects1.xsd
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects1.xsd	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts.BusinessObjects1.xsd	(revision 4254)
@@ -2,6 +2,6 @@
 <xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:import namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess" />
+  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
   <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
-  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
   <xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
   <xs:complexType name="ClientDto">
@@ -71,8 +71,8 @@
   <xs:complexType name="HeartBeatData">
     <xs:sequence>
-      <xs:element minOccurs="0" name="ClientId" type="ser:guid" />
       <xs:element minOccurs="0" name="FreeCores" type="xs:int" />
       <xs:element minOccurs="0" name="FreeMemory" type="xs:int" />
       <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="JobProgress" nillable="true" type="q3:ArrayOfKeyValueOfguiddouble" />
+      <xs:element minOccurs="0" name="SlaveId" type="ser:guid" />
     </xs:sequence>
   </xs:complexType>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts1.xsd
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts1.xsd	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/HeuristicLab.Hive.Contracts1.xsd	(revision 4254)
@@ -11,5 +11,5 @@
   </xs:complexType>
   <xs:element name="Response" nillable="true" type="tns:Response" />
-  <xs:complexType name="ResponseHB">
+  <xs:complexType name="ResponseHeartBeat">
     <xs:complexContent mixed="false">
       <xs:extension base="tns:Response">
@@ -20,5 +20,5 @@
     </xs:complexContent>
   </xs:complexType>
-  <xs:element name="ResponseHB" nillable="true" type="tns:ResponseHB" />
+  <xs:element name="ResponseHeartBeat" nillable="true" type="tns:ResponseHeartBeat" />
   <xs:complexType name="ArrayOfMessageContainer">
     <xs:sequence>
@@ -50,14 +50,22 @@
   </xs:simpleType>
   <xs:element name="MessageContainer.MessageType" nillable="true" type="tns:MessageContainer.MessageType" />
-  <xs:complexType name="ResponseJob">
+  <xs:complexType name="ResponseObjectOfJobDtoZAa7YIsz">
+    <xs:annotation>
+      <xs:appinfo>
+        <GenericType Name="ResponseObjectOf{0}{#}" Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
+          <GenericParameter Name="JobDto" Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects">
+          </GenericParameter>
+        </GenericType>
+      </xs:appinfo>
+    </xs:annotation>
     <xs:complexContent mixed="false">
       <xs:extension base="tns:Response">
         <xs:sequence>
-          <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" minOccurs="0" name="Job" nillable="true" type="q1:JobDto" />
+          <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts.BusinessObjects" minOccurs="0" name="Obj" nillable="true" type="q1:JobDto" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-  <xs:element name="ResponseJob" nillable="true" type="tns:ResponseJob" />
+  <xs:element name="ResponseObjectOfJobDtoZAa7YIsz" nillable="true" type="tns:ResponseObjectOfJobDtoZAa7YIsz" />
   <xs:complexType name="ResponseResultReceived">
     <xs:complexContent mixed="false">
@@ -71,14 +79,22 @@
   </xs:complexType>
   <xs:element name="ResponseResultReceived" nillable="true" type="tns:ResponseResultReceived" />
-  <xs:complexType name="ResponsePlugin">
+  <xs:complexType name="ResponseListOfCachedHivePluginInfoDtoZMwZop09">
+    <xs:annotation>
+      <xs:appinfo>
+        <GenericType Name="ResponseListOf{0}{#}" Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
+          <GenericParameter Name="CachedHivePluginInfoDto" Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.PluginInfrastructure">
+          </GenericParameter>
+        </GenericType>
+      </xs:appinfo>
+    </xs:annotation>
     <xs:complexContent mixed="false">
       <xs:extension base="tns:Response">
         <xs:sequence>
-          <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.PluginInfrastructure" minOccurs="0" name="Plugins" nillable="true" type="q2:ArrayOfCachedHivePluginInfoDto" />
+          <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.PluginInfrastructure" minOccurs="0" name="List" nillable="true" type="q2:ArrayOfCachedHivePluginInfoDto" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-  <xs:element name="ResponsePlugin" nillable="true" type="tns:ResponsePlugin" />
+  <xs:element name="ResponseListOfCachedHivePluginInfoDtoZMwZop09" nillable="true" type="tns:ResponseListOfCachedHivePluginInfoDtoZMwZop09" />
   <xs:complexType name="ResponseCalendar">
     <xs:complexContent mixed="false">
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.cs	(revision 4254)
@@ -10,193 +10,138 @@
 
 namespace HeuristicLab.Hive.Slave.Communication.ServerService {
-    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="PersistableObject", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.DataAccess")]
-    [System.SerializableAttribute()]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.ClientConfigDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.JobDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.ProjectDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.AppointmentDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.ResourceDto))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.BusinessObjects.ClientDto))]
-    public partial class PersistableObject : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-        
-        [System.NonSerializedAttribute()]
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        [System.Runtime.Serialization.OptionalFieldAttribute()]
-        private System.Guid IdField;
-        
-        [global::System.ComponentModel.BrowsableAttribute(false)]
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-            get {
-                return this.extensionDataField;
-            }
-            set {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid Id {
-            get {
-                return this.IdField;
-            }
-            set {
-                if ((this.IdField.Equals(value) != true)) {
-                    this.IdField = value;
-                    this.RaisePropertyChanged("Id");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName) {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null)) {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServerService.IClientFacade")]
-    public interface IClientFacade {
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/Login", ReplyAction="http://tempuri.org/IClientCommunicator/LoginResponse")]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+    
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="ServerService.ISlaveFacade")]
+    public interface ISlaveFacade {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/Login", ReplyAction="http://tempuri.org/ISlaveCommunicator/LoginResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHeartBeat))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseCalendar))]
         HeuristicLab.Hive.Contracts.Response Login(HeuristicLab.Hive.Contracts.BusinessObjects.ClientDto clientInfo);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/Login", ReplyAction="http://tempuri.org/IClientCommunicator/LoginResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/Login", ReplyAction="http://tempuri.org/ISlaveCommunicator/LoginResponse")]
         System.IAsyncResult BeginLogin(HeuristicLab.Hive.Contracts.BusinessObjects.ClientDto clientInfo, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.Response EndLogin(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/ProcessHeartBeat", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessHeartBeatResponse")]
-        HeuristicLab.Hive.Contracts.ResponseHB ProcessHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData);
-        
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/ProcessHeartBeat", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessHeartBeatResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeat", ReplyAction="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeatResponse")]
+        HeuristicLab.Hive.Contracts.ResponseHeartBeat ProcessHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeat", ReplyAction="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeatResponse")]
         System.IAsyncResult BeginProcessHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData, System.AsyncCallback callback, object asyncState);
         
-        HeuristicLab.Hive.Contracts.ResponseHB EndProcessHeartBeat(System.IAsyncResult result);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SendJob", ReplyAction="http://tempuri.org/IClientCommunicator/SendJobResponse")]
-        HeuristicLab.Hive.Contracts.ResponseJob SendJob(System.Guid clientId);
-        
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SendJob", ReplyAction="http://tempuri.org/IClientCommunicator/SendJobResponse")]
-        System.IAsyncResult BeginSendJob(System.Guid clientId, System.AsyncCallback callback, object asyncState);
-        
-        HeuristicLab.Hive.Contracts.ResponseJob EndSendJob(System.IAsyncResult result);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse")]
+        HeuristicLab.Hive.Contracts.ResponseHeartBeat EndProcessHeartBeat(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/GetJob", ReplyAction="http://tempuri.org/ISlaveCommunicator/GetJobResponse")]
+        HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> GetJob(System.Guid clientId);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/GetJob", ReplyAction="http://tempuri.org/ISlaveCommunicator/GetJobResponse")]
+        System.IAsyncResult BeginGetJob(System.Guid clientId, System.AsyncCallback callback, object asyncState);
+        
+        HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> EndGetJob(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResultResponse")]
         HeuristicLab.Hive.Contracts.ResponseResultReceived StoreFinishedJobResult(System.Guid clientId, System.Guid jobId, byte[] result, double percentage, string exception);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResult", ReplyAction="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResultResponse")]
         System.IAsyncResult BeginStoreFinishedJobResult(System.Guid clientId, System.Guid jobId, byte[] result, double percentage, string exception, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.ResponseResultReceived EndStoreFinishedJobResult(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/ISlaveCommunicator/ProcessSnapshotResponse")]
         HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessSnapshot(System.Guid clientId, System.Guid jobId, byte[] result, double percentage, string exception);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/ProcessSnapshot", ReplyAction="http://tempuri.org/ISlaveCommunicator/ProcessSnapshotResponse")]
         System.IAsyncResult BeginProcessSnapshot(System.Guid clientId, System.Guid jobId, byte[] result, double percentage, string exception, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.ResponseResultReceived EndProcessSnapshot(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/Logout", ReplyAction="http://tempuri.org/IClientCommunicator/LogoutResponse")]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/Logout", ReplyAction="http://tempuri.org/ISlaveCommunicator/LogoutResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHeartBeat))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseCalendar))]
         HeuristicLab.Hive.Contracts.Response Logout(System.Guid clientId);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/Logout", ReplyAction="http://tempuri.org/IClientCommunicator/LogoutResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/Logout", ReplyAction="http://tempuri.org/ISlaveCommunicator/LogoutResponse")]
         System.IAsyncResult BeginLogout(System.Guid clientId, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.Response EndLogout(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse")]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/ISlaveCommunicator/IsJobStillNeededResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHeartBeat))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseCalendar))]
         HeuristicLab.Hive.Contracts.Response IsJobStillNeeded(System.Guid jobId);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/IsJobStillNeeded", ReplyAction="http://tempuri.org/ISlaveCommunicator/IsJobStillNeededResponse")]
         System.IAsyncResult BeginIsJobStillNeeded(System.Guid jobId, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.Response EndIsJobStillNeeded(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SendPlugins", ReplyAction="http://tempuri.org/IClientCommunicator/SendPluginsResponse")]
-        HeuristicLab.Hive.Contracts.ResponsePlugin SendPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList);
-        
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SendPlugins", ReplyAction="http://tempuri.org/IClientCommunicator/SendPluginsResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/SendPlugins", ReplyAction="http://tempuri.org/ISlaveCommunicator/SendPluginsResponse")]
+        HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> SendPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList);
+        
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/SendPlugins", ReplyAction="http://tempuri.org/ISlaveCommunicator/SendPluginsResponse")]
         System.IAsyncResult BeginSendPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList, System.AsyncCallback callback, object asyncState);
         
-        HeuristicLab.Hive.Contracts.ResponsePlugin EndSendPlugins(System.IAsyncResult result);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/GetCalendar", ReplyAction="http://tempuri.org/IClientCommunicator/GetCalendarResponse")]
+        HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> EndSendPlugins(System.IAsyncResult result);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/GetCalendar", ReplyAction="http://tempuri.org/ISlaveCommunicator/GetCalendarResponse")]
         HeuristicLab.Hive.Contracts.ResponseCalendar GetCalendar(System.Guid clientId);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/GetCalendar", ReplyAction="http://tempuri.org/IClientCommunicator/GetCalendarResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/GetCalendar", ReplyAction="http://tempuri.org/ISlaveCommunicator/GetCalendarResponse")]
         System.IAsyncResult BeginGetCalendar(System.Guid clientId, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.ResponseCalendar EndGetCalendar(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientCommunicator/SetCalendarStatus", ReplyAction="http://tempuri.org/IClientCommunicator/SetCalendarStatusResponse")]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHB))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseJob))]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveCommunicator/SetCalendarStatus", ReplyAction="http://tempuri.org/ISlaveCommunicator/SetCalendarStatusResponse")]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseHeartBeat))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseResultReceived))]
-        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponsePlugin))]
+        [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto>))]
         [System.ServiceModel.ServiceKnownTypeAttribute(typeof(HeuristicLab.Hive.Contracts.ResponseCalendar))]
         HeuristicLab.Hive.Contracts.Response SetCalendarStatus(System.Guid clientId, HeuristicLab.Hive.Contracts.BusinessObjects.CalendarState state);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientCommunicator/SetCalendarStatus", ReplyAction="http://tempuri.org/IClientCommunicator/SetCalendarStatusResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveCommunicator/SetCalendarStatus", ReplyAction="http://tempuri.org/ISlaveCommunicator/SetCalendarStatusResponse")]
         System.IAsyncResult BeginSetCalendarStatus(System.Guid clientId, HeuristicLab.Hive.Contracts.BusinessObjects.CalendarState state, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.Response EndSetCalendarStatus(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientFacade/SendStreamedJob", ReplyAction="http://tempuri.org/IClientFacade/SendStreamedJobResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveFacade/SendStreamedJob", ReplyAction="http://tempuri.org/ISlaveFacade/SendStreamedJobResponse")]
         System.IO.Stream SendStreamedJob(System.Guid clientId);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientFacade/SendStreamedJob", ReplyAction="http://tempuri.org/IClientFacade/SendStreamedJobResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveFacade/SendStreamedJob", ReplyAction="http://tempuri.org/ISlaveFacade/SendStreamedJobResponse")]
         System.IAsyncResult BeginSendStreamedJob(System.Guid clientId, System.AsyncCallback callback, object asyncState);
         
         System.IO.Stream EndSendStreamedJob(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientFacade/SendStreamedPlugins", ReplyAction="http://tempuri.org/IClientFacade/SendStreamedPluginsResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveFacade/SendStreamedPlugins", ReplyAction="http://tempuri.org/ISlaveFacade/SendStreamedPluginsResponse")]
         System.IO.Stream SendStreamedPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientFacade/SendStreamedPlugins", ReplyAction="http://tempuri.org/IClientFacade/SendStreamedPluginsResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveFacade/SendStreamedPlugins", ReplyAction="http://tempuri.org/ISlaveFacade/SendStreamedPluginsResponse")]
         System.IAsyncResult BeginSendStreamedPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList, System.AsyncCallback callback, object asyncState);
         
         System.IO.Stream EndSendStreamedPlugins(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamed", ReplyAction="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamedResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamed", ReplyAction="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamedResponse")]
         HeuristicLab.Hive.Contracts.ResponseResultReceived StoreFinishedJobResultStreamed(System.IO.Stream stream);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamed", ReplyAction="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamedResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamed", ReplyAction="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamedResponse")]
         System.IAsyncResult BeginStoreFinishedJobResultStreamed(System.IO.Stream stream, System.AsyncCallback callback, object asyncState);
         
         HeuristicLab.Hive.Contracts.ResponseResultReceived EndStoreFinishedJobResultStreamed(System.IAsyncResult result);
         
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IClientFacade/ProcessSnapshotStreamed", ReplyAction="http://tempuri.org/IClientFacade/ProcessSnapshotStreamedResponse")]
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamed", ReplyAction="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamedResponse")]
         HeuristicLab.Hive.Contracts.ResponseResultReceived ProcessSnapshotStreamed(System.IO.Stream stream);
         
-        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/IClientFacade/ProcessSnapshotStreamed", ReplyAction="http://tempuri.org/IClientFacade/ProcessSnapshotStreamedResponse")]
+        [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamed", ReplyAction="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamedResponse")]
         System.IAsyncResult BeginProcessSnapshotStreamed(System.IO.Stream stream, System.AsyncCallback callback, object asyncState);
         
@@ -205,5 +150,5 @@
     
     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    public interface IClientFacadeChannel : HeuristicLab.Hive.Slave.Communication.ServerService.IClientFacade, System.ServiceModel.IClientChannel {
+    public interface ISlaveFacadeChannel : HeuristicLab.Hive.Slave.Communication.ServerService.ISlaveFacade, System.ServiceModel.IClientChannel {
     }
     
@@ -238,27 +183,27 @@
         }
         
-        public HeuristicLab.Hive.Contracts.ResponseHB Result {
-            get {
-                base.RaiseExceptionIfNecessary();
-                return ((HeuristicLab.Hive.Contracts.ResponseHB)(this.results[0]));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    public partial class SendJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-        
-        private object[] results;
-        
-        public SendJobCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
-                base(exception, cancelled, userState) {
-            this.results = results;
-        }
-        
-        public HeuristicLab.Hive.Contracts.ResponseJob Result {
-            get {
-                base.RaiseExceptionIfNecessary();
-                return ((HeuristicLab.Hive.Contracts.ResponseJob)(this.results[0]));
+        public HeuristicLab.Hive.Contracts.ResponseHeartBeat Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseHeartBeat)(this.results[0]));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public partial class GetJobCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+        
+        private object[] results;
+        
+        public GetJobCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
+                base(exception, cancelled, userState) {
+            this.results = results;
+        }
+        
+        public HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto>)(this.results[0]));
             }
         }
@@ -352,8 +297,8 @@
         }
         
-        public HeuristicLab.Hive.Contracts.ResponsePlugin Result {
-            get {
-                base.RaiseExceptionIfNecessary();
-                return ((HeuristicLab.Hive.Contracts.ResponsePlugin)(this.results[0]));
+        public HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> Result {
+            get {
+                base.RaiseExceptionIfNecessary();
+                return ((HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto>)(this.results[0]));
             }
         }
@@ -476,5 +421,5 @@
     [System.Diagnostics.DebuggerStepThroughAttribute()]
     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    public partial class ClientFacadeClient : System.ServiceModel.ClientBase<HeuristicLab.Hive.Slave.Communication.ServerService.IClientFacade>, HeuristicLab.Hive.Slave.Communication.ServerService.IClientFacade {
+    public partial class SlaveFacadeClient : System.ServiceModel.ClientBase<HeuristicLab.Hive.Slave.Communication.ServerService.ISlaveFacade>, HeuristicLab.Hive.Slave.Communication.ServerService.ISlaveFacade {
         
         private BeginOperationDelegate onBeginLoginDelegate;
@@ -490,9 +435,9 @@
         private System.Threading.SendOrPostCallback onProcessHeartBeatCompletedDelegate;
         
-        private BeginOperationDelegate onBeginSendJobDelegate;
-        
-        private EndOperationDelegate onEndSendJobDelegate;
-        
-        private System.Threading.SendOrPostCallback onSendJobCompletedDelegate;
+        private BeginOperationDelegate onBeginGetJobDelegate;
+        
+        private EndOperationDelegate onEndGetJobDelegate;
+        
+        private System.Threading.SendOrPostCallback onGetJobCompletedDelegate;
         
         private BeginOperationDelegate onBeginStoreFinishedJobResultDelegate;
@@ -562,20 +507,20 @@
         private System.Threading.SendOrPostCallback onProcessSnapshotStreamedCompletedDelegate;
         
-        public ClientFacadeClient() {
-        }
-        
-        public ClientFacadeClient(string endpointConfigurationName) : 
+        public SlaveFacadeClient() {
+        }
+        
+        public SlaveFacadeClient(string endpointConfigurationName) : 
                 base(endpointConfigurationName) {
         }
         
-        public ClientFacadeClient(string endpointConfigurationName, string remoteAddress) : 
+        public SlaveFacadeClient(string endpointConfigurationName, string remoteAddress) : 
                 base(endpointConfigurationName, remoteAddress) {
         }
         
-        public ClientFacadeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+        public SlaveFacadeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                 base(endpointConfigurationName, remoteAddress) {
         }
         
-        public ClientFacadeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+        public SlaveFacadeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                 base(binding, remoteAddress) {
         }
@@ -585,5 +530,5 @@
         public event System.EventHandler<ProcessHeartBeatCompletedEventArgs> ProcessHeartBeatCompleted;
         
-        public event System.EventHandler<SendJobCompletedEventArgs> SendJobCompleted;
+        public event System.EventHandler<GetJobCompletedEventArgs> GetJobCompleted;
         
         public event System.EventHandler<StoreFinishedJobResultCompletedEventArgs> StoreFinishedJobResultCompleted;
@@ -659,5 +604,5 @@
         }
         
-        public HeuristicLab.Hive.Contracts.ResponseHB ProcessHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
+        public HeuristicLab.Hive.Contracts.ResponseHeartBeat ProcessHeartBeat(HeuristicLab.Hive.Contracts.BusinessObjects.HeartBeatData hbData) {
             return base.Channel.ProcessHeartBeat(hbData);
         }
@@ -669,5 +614,5 @@
         
         [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-        public HeuristicLab.Hive.Contracts.ResponseHB EndProcessHeartBeat(System.IAsyncResult result) {
+        public HeuristicLab.Hive.Contracts.ResponseHeartBeat EndProcessHeartBeat(System.IAsyncResult result) {
             return base.Channel.EndProcessHeartBeat(result);
         }
@@ -679,5 +624,5 @@
         
         private object[] OnEndProcessHeartBeat(System.IAsyncResult result) {
-            HeuristicLab.Hive.Contracts.ResponseHB retVal = this.EndProcessHeartBeat(result);
+            HeuristicLab.Hive.Contracts.ResponseHeartBeat retVal = this.EndProcessHeartBeat(result);
             return new object[] {
                     retVal};
@@ -709,52 +654,52 @@
         }
         
-        public HeuristicLab.Hive.Contracts.ResponseJob SendJob(System.Guid clientId) {
-            return base.Channel.SendJob(clientId);
-        }
-        
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-        public System.IAsyncResult BeginSendJob(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
-            return base.Channel.BeginSendJob(clientId, callback, asyncState);
-        }
-        
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-        public HeuristicLab.Hive.Contracts.ResponseJob EndSendJob(System.IAsyncResult result) {
-            return base.Channel.EndSendJob(result);
-        }
-        
-        private System.IAsyncResult OnBeginSendJob(object[] inValues, System.AsyncCallback callback, object asyncState) {
+        public HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> GetJob(System.Guid clientId) {
+            return base.Channel.GetJob(clientId);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public System.IAsyncResult BeginGetJob(System.Guid clientId, System.AsyncCallback callback, object asyncState) {
+            return base.Channel.BeginGetJob(clientId, callback, asyncState);
+        }
+        
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        public HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> EndGetJob(System.IAsyncResult result) {
+            return base.Channel.EndGetJob(result);
+        }
+        
+        private System.IAsyncResult OnBeginGetJob(object[] inValues, System.AsyncCallback callback, object asyncState) {
             System.Guid clientId = ((System.Guid)(inValues[0]));
-            return this.BeginSendJob(clientId, callback, asyncState);
-        }
-        
-        private object[] OnEndSendJob(System.IAsyncResult result) {
-            HeuristicLab.Hive.Contracts.ResponseJob retVal = this.EndSendJob(result);
-            return new object[] {
-                    retVal};
-        }
-        
-        private void OnSendJobCompleted(object state) {
-            if ((this.SendJobCompleted != null)) {
-                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-                this.SendJobCompleted(this, new SendJobCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-            }
-        }
-        
-        public void SendJobAsync(System.Guid clientId) {
-            this.SendJobAsync(clientId, null);
-        }
-        
-        public void SendJobAsync(System.Guid clientId, object userState) {
-            if ((this.onBeginSendJobDelegate == null)) {
-                this.onBeginSendJobDelegate = new BeginOperationDelegate(this.OnBeginSendJob);
-            }
-            if ((this.onEndSendJobDelegate == null)) {
-                this.onEndSendJobDelegate = new EndOperationDelegate(this.OnEndSendJob);
-            }
-            if ((this.onSendJobCompletedDelegate == null)) {
-                this.onSendJobCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnSendJobCompleted);
-            }
-            base.InvokeAsync(this.onBeginSendJobDelegate, new object[] {
-                        clientId}, this.onEndSendJobDelegate, this.onSendJobCompletedDelegate, userState);
+            return this.BeginGetJob(clientId, callback, asyncState);
+        }
+        
+        private object[] OnEndGetJob(System.IAsyncResult result) {
+            HeuristicLab.Hive.Contracts.ResponseObject<HeuristicLab.Hive.Contracts.BusinessObjects.JobDto> retVal = this.EndGetJob(result);
+            return new object[] {
+                    retVal};
+        }
+        
+        private void OnGetJobCompleted(object state) {
+            if ((this.GetJobCompleted != null)) {
+                InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+                this.GetJobCompleted(this, new GetJobCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+            }
+        }
+        
+        public void GetJobAsync(System.Guid clientId) {
+            this.GetJobAsync(clientId, null);
+        }
+        
+        public void GetJobAsync(System.Guid clientId, object userState) {
+            if ((this.onBeginGetJobDelegate == null)) {
+                this.onBeginGetJobDelegate = new BeginOperationDelegate(this.OnBeginGetJob);
+            }
+            if ((this.onEndGetJobDelegate == null)) {
+                this.onEndGetJobDelegate = new EndOperationDelegate(this.OnEndGetJob);
+            }
+            if ((this.onGetJobCompletedDelegate == null)) {
+                this.onGetJobCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetJobCompleted);
+            }
+            base.InvokeAsync(this.onBeginGetJobDelegate, new object[] {
+                        clientId}, this.onEndGetJobDelegate, this.onGetJobCompletedDelegate, userState);
         }
         
@@ -975,5 +920,5 @@
         }
         
-        public HeuristicLab.Hive.Contracts.ResponsePlugin SendPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList) {
+        public HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> SendPlugins(HeuristicLab.Hive.Contracts.BusinessObjects.HivePluginInfoDto[] pluginList) {
             return base.Channel.SendPlugins(pluginList);
         }
@@ -985,5 +930,5 @@
         
         [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-        public HeuristicLab.Hive.Contracts.ResponsePlugin EndSendPlugins(System.IAsyncResult result) {
+        public HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> EndSendPlugins(System.IAsyncResult result) {
             return base.Channel.EndSendPlugins(result);
         }
@@ -995,5 +940,5 @@
         
         private object[] OnEndSendPlugins(System.IAsyncResult result) {
-            HeuristicLab.Hive.Contracts.ResponsePlugin retVal = this.EndSendPlugins(result);
+            HeuristicLab.Hive.Contracts.ResponseList<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> retVal = this.EndSendPlugins(result);
             return new object[] {
                     retVal};
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.svcmap
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.svcmap	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/Reference.svcmap	(revision 4254)
@@ -19,17 +19,17 @@
   </ClientOptions>
   <MetadataSources>
-    <MetadataSource Address="net.tcp://10.42.1.153:9000/HiveServer/mex" Protocol="mex" SourceId="1" />
+    <MetadataSource Address="net.tcp://10.42.1.154:9000/HiveServer/mex" Protocol="mex" SourceId="1" />
   </MetadataSources>
   <Metadata>
-    <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="03ab6bc6-4c88-4e1f-8d59-3f52f2942db4" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="51e801d0-81c2-4b13-b430-c177265c3333" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="service3.xsd" MetadataType="Schema" ID="e8e86f83-8c65-4364-a203-c7b20d29ac40" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="HeuristicLab.Hive.Contracts.BusinessObjects1.xsd" MetadataType="Schema" ID="249326e6-36f3-421b-927e-ca9b7bedfdb5" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="HeuristicLab.DataAccess1.xsd" MetadataType="Schema" ID="5e0b464e-8324-4e2e-bbed-da3c79943457" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="HeuristicLab.Hive.Contracts1.xsd" MetadataType="Schema" ID="0e2228b1-c9aa-4a6c-99ef-dbdcf6c563d9" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="Arrays1.xsd" MetadataType="Schema" ID="0537e276-0286-4f2d-a565-616bf77a9e75" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="27a70b20-97c3-47b5-a35c-767183544bc7" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="HeuristicLab.PluginInfrastructure2.xsd" MetadataType="Schema" ID="af9a77d2-d649-4bb6-bf18-f1b3ba4d594a" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
-    <MetadataFile FileName="Message1.xsd" MetadataType="Schema" ID="e9066a85-9edd-4f73-a792-4b932bdb9e59" SourceId="1" SourceUrl="net.tcp://10.42.1.153:9000/HiveServer/mex" />
+    <MetadataFile FileName="service1.wsdl" MetadataType="Wsdl" ID="0162f5cd-4ce4-4063-b440-7f660342c1b4" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="service2.xsd" MetadataType="Schema" ID="38b7fb46-f017-4fd9-90a3-4dd56030d327" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="service3.xsd" MetadataType="Schema" ID="6eda0295-9645-4116-9a1a-12ad7571f78e" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.Hive.Contracts.BusinessObjects1.xsd" MetadataType="Schema" ID="abb70224-775d-4edc-986c-20eede5dbe04" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.DataAccess1.xsd" MetadataType="Schema" ID="55cbe34c-d0be-42ef-989a-a97018741832" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.Hive.Contracts1.xsd" MetadataType="Schema" ID="d4834dd8-d9fe-4ce9-b5e9-dd9fe5451fbe" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="Arrays1.xsd" MetadataType="Schema" ID="7f60dd4e-614e-4b85-a4e7-a4caac529103" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="System1.xsd" MetadataType="Schema" ID="9bdcdb6f-8162-4554-84af-95dd11d14f5e" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="HeuristicLab.PluginInfrastructure2.xsd" MetadataType="Schema" ID="df9afdc0-162d-4bae-93e1-31ab835940f9" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
+    <MetadataFile FileName="Message1.xsd" MetadataType="Schema" ID="332a2050-4e50-46c6-8b55-0e53a2dfe882" SourceId="1" SourceUrl="net.tcp://10.42.1.154:9000/HiveServer/mex" />
   </Metadata>
   <Extensions>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration.svcinfo
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration.svcinfo	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration.svcinfo	(revision 4254)
@@ -3,8 +3,8 @@
   <behaviors />
   <bindings>
-    <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetTcpBinding_IClientFacade&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Streamed&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="NetTcpBinding_IClientFacade" />
+    <binding digest="System.ServiceModel.Configuration.NetTcpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot; name=&quot;NetTcpBinding_ISlaveFacade&quot; transactionFlow=&quot;false&quot; transactionProtocol=&quot;OleTransactions&quot; transferMode=&quot;Streamed&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;reliableSession enabled=&quot;false&quot; inactivityTimeout=&quot;00:10:00&quot; ordered=&quot;true&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;message clientCredentialType=&quot;Windows&quot; /&gt;&lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="netTcpBinding" name="NetTcpBinding_ISlaveFacade" />
   </bindings>
   <endpoints>
-    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientFacade&quot; contract=&quot;ServerService.IClientFacade&quot; name=&quot;NetTcpBinding_IClientFacade&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_IClientFacade&quot; contract=&quot;ServerService.IClientFacade&quot; name=&quot;NetTcpBinding_IClientFacade&quot; /&gt;" contractName="ServerService.IClientFacade" name="NetTcpBinding_IClientFacade" />
+    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_ISlaveFacade&quot; contract=&quot;ServerService.ISlaveFacade&quot; name=&quot;NetTcpBinding_ISlaveFacade&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator&quot; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_ISlaveFacade&quot; contract=&quot;ServerService.ISlaveFacade&quot; name=&quot;NetTcpBinding_ISlaveFacade&quot; /&gt;" contractName="ServerService.ISlaveFacade" name="NetTcpBinding_ISlaveFacade" />
   </endpoints>
 </configurationSnapshot>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration91.svcinfo
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration91.svcinfo	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/configuration91.svcinfo	(revision 4254)
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="8ELBmhFDdKazse0ChCu2fhV6nYM=">
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="q2x/4cQUEACPUg4K+/rZlk1YeAs=">
   <bindingConfigurations>
-    <bindingConfiguration bindingType="netTcpBinding" name="NetTcpBinding_IClientFacade">
+    <bindingConfiguration bindingType="netTcpBinding" name="NetTcpBinding_ISlaveFacade">
       <properties>
         <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>NetTcpBinding_IClientFacade</serializedValue>
+          <serializedValue>NetTcpBinding_ISlaveFacade</serializedValue>
         </property>
         <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -119,8 +119,8 @@
   </bindingConfigurations>
   <endpoints>
-    <endpoint name="NetTcpBinding_IClientFacade" contract="ServerService.IClientFacade" bindingType="netTcpBinding" address="net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator" bindingConfiguration="NetTcpBinding_IClientFacade">
+    <endpoint name="NetTcpBinding_ISlaveFacade" contract="ServerService.ISlaveFacade" bindingType="netTcpBinding" address="net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator" bindingConfiguration="NetTcpBinding_ISlaveFacade">
       <properties>
         <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator</serializedValue>
+          <serializedValue>net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator</serializedValue>
         </property>
         <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -131,8 +131,8 @@
         </property>
         <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>NetTcpBinding_IClientFacade</serializedValue>
+          <serializedValue>NetTcpBinding_ISlaveFacade</serializedValue>
         </property>
         <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>ServerService.IClientFacade</serializedValue>
+          <serializedValue>ServerService.ISlaveFacade</serializedValue>
         </property>
         <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -194,5 +194,5 @@
         </property>
         <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-          <serializedValue>NetTcpBinding_IClientFacade</serializedValue>
+          <serializedValue>NetTcpBinding_ISlaveFacade</serializedValue>
         </property>
         <property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service1.wsdl
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service1.wsdl	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service1.wsdl	(revision 4254)
@@ -1,5 +1,5 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
-<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ClientFacade" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
-  <wsp:Policy wsu:Id="NetTcpBinding_IClientFacade_policy">
+<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SlaveFacade" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsp:Policy wsu:Id="NetTcpBinding_ISlaveFacade_policy">
     <wsp:ExactlyOne>
       <wsp:All>
@@ -26,152 +26,152 @@
     </xsd:schema>
   </wsdl:types>
-  <wsdl:message name="IClientFacade_Login_InputMessage">
+  <wsdl:message name="ISlaveFacade_Login_InputMessage">
     <wsdl:part name="parameters" element="tns:Login" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_Login_OutputMessage">
+  <wsdl:message name="ISlaveFacade_Login_OutputMessage">
     <wsdl:part name="parameters" element="tns:LoginResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessHeartBeat_InputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessHeartBeat_InputMessage">
     <wsdl:part name="parameters" element="tns:ProcessHeartBeat" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessHeartBeat_OutputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessHeartBeat_OutputMessage">
     <wsdl:part name="parameters" element="tns:ProcessHeartBeatResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendJob_InputMessage">
-    <wsdl:part name="parameters" element="tns:SendJob" />
-  </wsdl:message>
-  <wsdl:message name="IClientFacade_SendJob_OutputMessage">
-    <wsdl:part name="parameters" element="tns:SendJobResponse" />
-  </wsdl:message>
-  <wsdl:message name="IClientFacade_StoreFinishedJobResult_InputMessage">
+  <wsdl:message name="ISlaveFacade_GetJob_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetJob" />
+  </wsdl:message>
+  <wsdl:message name="ISlaveFacade_GetJob_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetJobResponse" />
+  </wsdl:message>
+  <wsdl:message name="ISlaveFacade_StoreFinishedJobResult_InputMessage">
     <wsdl:part name="parameters" element="tns:StoreFinishedJobResult" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_StoreFinishedJobResult_OutputMessage">
+  <wsdl:message name="ISlaveFacade_StoreFinishedJobResult_OutputMessage">
     <wsdl:part name="parameters" element="tns:StoreFinishedJobResultResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessSnapshot_InputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessSnapshot_InputMessage">
     <wsdl:part name="parameters" element="tns:ProcessSnapshot" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessSnapshot_OutputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessSnapshot_OutputMessage">
     <wsdl:part name="parameters" element="tns:ProcessSnapshotResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_Logout_InputMessage">
+  <wsdl:message name="ISlaveFacade_Logout_InputMessage">
     <wsdl:part name="parameters" element="tns:Logout" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_Logout_OutputMessage">
+  <wsdl:message name="ISlaveFacade_Logout_OutputMessage">
     <wsdl:part name="parameters" element="tns:LogoutResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_IsJobStillNeeded_InputMessage">
+  <wsdl:message name="ISlaveFacade_IsJobStillNeeded_InputMessage">
     <wsdl:part name="parameters" element="tns:IsJobStillNeeded" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_IsJobStillNeeded_OutputMessage">
+  <wsdl:message name="ISlaveFacade_IsJobStillNeeded_OutputMessage">
     <wsdl:part name="parameters" element="tns:IsJobStillNeededResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendPlugins_InputMessage">
+  <wsdl:message name="ISlaveFacade_SendPlugins_InputMessage">
     <wsdl:part name="parameters" element="tns:SendPlugins" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendPlugins_OutputMessage">
+  <wsdl:message name="ISlaveFacade_SendPlugins_OutputMessage">
     <wsdl:part name="parameters" element="tns:SendPluginsResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_GetCalendar_InputMessage">
+  <wsdl:message name="ISlaveFacade_GetCalendar_InputMessage">
     <wsdl:part name="parameters" element="tns:GetCalendar" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_GetCalendar_OutputMessage">
+  <wsdl:message name="ISlaveFacade_GetCalendar_OutputMessage">
     <wsdl:part name="parameters" element="tns:GetCalendarResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SetCalendarStatus_InputMessage">
+  <wsdl:message name="ISlaveFacade_SetCalendarStatus_InputMessage">
     <wsdl:part name="parameters" element="tns:SetCalendarStatus" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SetCalendarStatus_OutputMessage">
+  <wsdl:message name="ISlaveFacade_SetCalendarStatus_OutputMessage">
     <wsdl:part name="parameters" element="tns:SetCalendarStatusResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendStreamedJob_InputMessage">
+  <wsdl:message name="ISlaveFacade_SendStreamedJob_InputMessage">
     <wsdl:part name="parameters" element="tns:SendStreamedJob" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendStreamedJob_OutputMessage">
+  <wsdl:message name="ISlaveFacade_SendStreamedJob_OutputMessage">
     <wsdl:part name="parameters" element="tns:SendStreamedJobResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendStreamedPlugins_InputMessage">
+  <wsdl:message name="ISlaveFacade_SendStreamedPlugins_InputMessage">
     <wsdl:part name="parameters" element="tns:SendStreamedPlugins" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_SendStreamedPlugins_OutputMessage">
+  <wsdl:message name="ISlaveFacade_SendStreamedPlugins_OutputMessage">
     <wsdl:part name="parameters" element="tns:SendStreamedPluginsResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_StoreFinishedJobResultStreamed_InputMessage">
+  <wsdl:message name="ISlaveFacade_StoreFinishedJobResultStreamed_InputMessage">
     <wsdl:part name="parameters" element="tns:StoreFinishedJobResultStreamed" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_StoreFinishedJobResultStreamed_OutputMessage">
+  <wsdl:message name="ISlaveFacade_StoreFinishedJobResultStreamed_OutputMessage">
     <wsdl:part name="parameters" element="tns:StoreFinishedJobResultStreamedResponse" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessSnapshotStreamed_InputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessSnapshotStreamed_InputMessage">
     <wsdl:part name="parameters" element="tns:ProcessSnapshotStreamed" />
   </wsdl:message>
-  <wsdl:message name="IClientFacade_ProcessSnapshotStreamed_OutputMessage">
+  <wsdl:message name="ISlaveFacade_ProcessSnapshotStreamed_OutputMessage">
     <wsdl:part name="parameters" element="tns:ProcessSnapshotStreamedResponse" />
   </wsdl:message>
-  <wsdl:portType name="IClientFacade">
+  <wsdl:portType name="ISlaveFacade">
     <wsdl:operation name="Login">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/Login" message="tns:IClientFacade_Login_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/LoginResponse" message="tns:IClientFacade_Login_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/Login" message="tns:ISlaveFacade_Login_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/LoginResponse" message="tns:ISlaveFacade_Login_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="ProcessHeartBeat">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessHeartBeat" message="tns:IClientFacade_ProcessHeartBeat_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessHeartBeatResponse" message="tns:IClientFacade_ProcessHeartBeat_OutputMessage" />
-    </wsdl:operation>
-    <wsdl:operation name="SendJob">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SendJob" message="tns:IClientFacade_SendJob_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendJobResponse" message="tns:IClientFacade_SendJob_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeat" message="tns:ISlaveFacade_ProcessHeartBeat_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeatResponse" message="tns:ISlaveFacade_ProcessHeartBeat_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="GetJob">
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/GetJob" message="tns:ISlaveFacade_GetJob_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/GetJobResponse" message="tns:ISlaveFacade_GetJob_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="StoreFinishedJobResult">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult" message="tns:IClientFacade_StoreFinishedJobResult_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/StoreFinishedJobResultResponse" message="tns:IClientFacade_StoreFinishedJobResult_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResult" message="tns:ISlaveFacade_StoreFinishedJobResult_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResultResponse" message="tns:ISlaveFacade_StoreFinishedJobResult_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="ProcessSnapshot">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessSnapshot" message="tns:IClientFacade_ProcessSnapshot_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/ProcessSnapshotResponse" message="tns:IClientFacade_ProcessSnapshot_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/ProcessSnapshot" message="tns:ISlaveFacade_ProcessSnapshot_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/ProcessSnapshotResponse" message="tns:ISlaveFacade_ProcessSnapshot_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="Logout">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/Logout" message="tns:IClientFacade_Logout_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/LogoutResponse" message="tns:IClientFacade_Logout_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/Logout" message="tns:ISlaveFacade_Logout_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/LogoutResponse" message="tns:ISlaveFacade_Logout_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="IsJobStillNeeded">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/IsJobStillNeeded" message="tns:IClientFacade_IsJobStillNeeded_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/IsJobStillNeededResponse" message="tns:IClientFacade_IsJobStillNeeded_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/IsJobStillNeeded" message="tns:ISlaveFacade_IsJobStillNeeded_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/IsJobStillNeededResponse" message="tns:ISlaveFacade_IsJobStillNeeded_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="SendPlugins">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SendPlugins" message="tns:IClientFacade_SendPlugins_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SendPluginsResponse" message="tns:IClientFacade_SendPlugins_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/SendPlugins" message="tns:ISlaveFacade_SendPlugins_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/SendPluginsResponse" message="tns:ISlaveFacade_SendPlugins_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="GetCalendar">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/GetCalendar" message="tns:IClientFacade_GetCalendar_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/GetCalendarResponse" message="tns:IClientFacade_GetCalendar_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/GetCalendar" message="tns:ISlaveFacade_GetCalendar_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/GetCalendarResponse" message="tns:ISlaveFacade_GetCalendar_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="SetCalendarStatus">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientCommunicator/SetCalendarStatus" message="tns:IClientFacade_SetCalendarStatus_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientCommunicator/SetCalendarStatusResponse" message="tns:IClientFacade_SetCalendarStatus_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveCommunicator/SetCalendarStatus" message="tns:ISlaveFacade_SetCalendarStatus_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveCommunicator/SetCalendarStatusResponse" message="tns:ISlaveFacade_SetCalendarStatus_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="SendStreamedJob">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientFacade/SendStreamedJob" message="tns:IClientFacade_SendStreamedJob_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientFacade/SendStreamedJobResponse" message="tns:IClientFacade_SendStreamedJob_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveFacade/SendStreamedJob" message="tns:ISlaveFacade_SendStreamedJob_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveFacade/SendStreamedJobResponse" message="tns:ISlaveFacade_SendStreamedJob_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="SendStreamedPlugins">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientFacade/SendStreamedPlugins" message="tns:IClientFacade_SendStreamedPlugins_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientFacade/SendStreamedPluginsResponse" message="tns:IClientFacade_SendStreamedPlugins_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveFacade/SendStreamedPlugins" message="tns:ISlaveFacade_SendStreamedPlugins_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveFacade/SendStreamedPluginsResponse" message="tns:ISlaveFacade_SendStreamedPlugins_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="StoreFinishedJobResultStreamed">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamed" message="tns:IClientFacade_StoreFinishedJobResultStreamed_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamedResponse" message="tns:IClientFacade_StoreFinishedJobResultStreamed_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamed" message="tns:ISlaveFacade_StoreFinishedJobResultStreamed_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamedResponse" message="tns:ISlaveFacade_StoreFinishedJobResultStreamed_OutputMessage" />
     </wsdl:operation>
     <wsdl:operation name="ProcessSnapshotStreamed">
-      <wsdl:input wsaw:Action="http://tempuri.org/IClientFacade/ProcessSnapshotStreamed" message="tns:IClientFacade_ProcessSnapshotStreamed_InputMessage" />
-      <wsdl:output wsaw:Action="http://tempuri.org/IClientFacade/ProcessSnapshotStreamedResponse" message="tns:IClientFacade_ProcessSnapshotStreamed_OutputMessage" />
+      <wsdl:input wsaw:Action="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamed" message="tns:ISlaveFacade_ProcessSnapshotStreamed_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamedResponse" message="tns:ISlaveFacade_ProcessSnapshotStreamed_OutputMessage" />
     </wsdl:operation>
   </wsdl:portType>
-  <wsdl:binding name="NetTcpBinding_IClientFacade" type="tns:IClientFacade">
-    <wsp:PolicyReference URI="#NetTcpBinding_IClientFacade_policy">
+  <wsdl:binding name="NetTcpBinding_ISlaveFacade" type="tns:ISlaveFacade">
+    <wsp:PolicyReference URI="#NetTcpBinding_ISlaveFacade_policy">
     </wsp:PolicyReference>
     <soap12:binding transport="http://schemas.microsoft.com/soap/tcp" />
     <wsdl:operation name="Login">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/Login" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/Login" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -182,14 +182,14 @@
     </wsdl:operation>
     <wsdl:operation name="ProcessHeartBeat">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/ProcessHeartBeat" style="document" />
-      <wsdl:input>
-        <soap12:body use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap12:body use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SendJob">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SendJob" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/ProcessHeartBeat" style="document" />
+      <wsdl:input>
+        <soap12:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap12:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetJob">
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/GetJob" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -200,5 +200,5 @@
     </wsdl:operation>
     <wsdl:operation name="StoreFinishedJobResult">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/StoreFinishedJobResult" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/StoreFinishedJobResult" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -209,5 +209,5 @@
     </wsdl:operation>
     <wsdl:operation name="ProcessSnapshot">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/ProcessSnapshot" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/ProcessSnapshot" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -218,5 +218,5 @@
     </wsdl:operation>
     <wsdl:operation name="Logout">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/Logout" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/Logout" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -227,5 +227,5 @@
     </wsdl:operation>
     <wsdl:operation name="IsJobStillNeeded">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/IsJobStillNeeded" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/IsJobStillNeeded" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -236,5 +236,5 @@
     </wsdl:operation>
     <wsdl:operation name="SendPlugins">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SendPlugins" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/SendPlugins" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -245,5 +245,5 @@
     </wsdl:operation>
     <wsdl:operation name="GetCalendar">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/GetCalendar" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/GetCalendar" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -254,5 +254,5 @@
     </wsdl:operation>
     <wsdl:operation name="SetCalendarStatus">
-      <soap12:operation soapAction="http://tempuri.org/IClientCommunicator/SetCalendarStatus" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveCommunicator/SetCalendarStatus" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -263,5 +263,5 @@
     </wsdl:operation>
     <wsdl:operation name="SendStreamedJob">
-      <soap12:operation soapAction="http://tempuri.org/IClientFacade/SendStreamedJob" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/SendStreamedJob" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -272,5 +272,5 @@
     </wsdl:operation>
     <wsdl:operation name="SendStreamedPlugins">
-      <soap12:operation soapAction="http://tempuri.org/IClientFacade/SendStreamedPlugins" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/SendStreamedPlugins" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -281,5 +281,5 @@
     </wsdl:operation>
     <wsdl:operation name="StoreFinishedJobResultStreamed">
-      <soap12:operation soapAction="http://tempuri.org/IClientFacade/StoreFinishedJobResultStreamed" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/StoreFinishedJobResultStreamed" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -290,5 +290,5 @@
     </wsdl:operation>
     <wsdl:operation name="ProcessSnapshotStreamed">
-      <soap12:operation soapAction="http://tempuri.org/IClientFacade/ProcessSnapshotStreamed" style="document" />
+      <soap12:operation soapAction="http://tempuri.org/ISlaveFacade/ProcessSnapshotStreamed" style="document" />
       <wsdl:input>
         <soap12:body use="literal" />
@@ -299,9 +299,9 @@
     </wsdl:operation>
   </wsdl:binding>
-  <wsdl:service name="ClientFacade">
-    <wsdl:port name="NetTcpBinding_IClientFacade" binding="tns:NetTcpBinding_IClientFacade">
-      <soap12:address location="net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator" />
+  <wsdl:service name="SlaveFacade">
+    <wsdl:port name="NetTcpBinding_ISlaveFacade" binding="tns:NetTcpBinding_ISlaveFacade">
+      <soap12:address location="net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator" />
       <wsa10:EndpointReference>
-        <wsa10:Address>net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator</wsa10:Address>
+        <wsa10:Address>net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator</wsa10:Address>
       </wsa10:EndpointReference>
     </wsdl:port>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service2.xsd
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service2.xsd	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/Service References/ServerService/service2.xsd	(revision 4254)
@@ -29,9 +29,9 @@
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="ProcessHeartBeatResult" nillable="true" type="q4:ResponseHB" />
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="SendJob">
+        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="ProcessHeartBeatResult" nillable="true" type="q4:ResponseHeartBeat" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetJob">
     <xs:complexType>
       <xs:sequence>
@@ -40,8 +40,8 @@
     </xs:complexType>
   </xs:element>
-  <xs:element name="SendJobResponse">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendJobResult" nillable="true" type="q6:ResponseJob" />
+  <xs:element name="GetJobResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="GetJobResult" nillable="true" type="q6:ResponseObjectOfJobDtoZAa7YIsz" />
       </xs:sequence>
     </xs:complexType>
@@ -121,5 +121,5 @@
     <xs:complexType>
       <xs:sequence>
-        <xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendPluginsResult" nillable="true" type="q18:ResponsePlugin" />
+        <xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/HeuristicLab.Hive.Contracts" minOccurs="0" name="SendPluginsResult" nillable="true" type="q18:ResponseListOfCachedHivePluginInfoDtoZMwZop09" />
       </xs:sequence>
     </xs:complexType>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/WcfService.cs	(revision 4254)
@@ -66,5 +66,5 @@
     public event EventHandler Connected;
 
-    public ClientFacadeClient proxy = null;
+    public SlaveFacadeClient proxy = null;
 
     /// <summary>
@@ -87,5 +87,5 @@
 
         Logger.Debug("Creating the new connection proxy");
-        proxy = new ClientFacadeClient(
+        proxy = new SlaveFacadeClient(
           HeuristicLab.Hive.Contracts.WcfSettings.GetStreamedBinding(),
           new EndpointAddress("net.tcp://" + ServerIP + ":" + ServerPort + "/HiveServer/ClientCommunicator")
@@ -204,5 +204,5 @@
     /// </summary>
     #region PullJob
-    public event System.EventHandler<SendJobCompletedEventArgs> SendJobCompleted;
+    public event System.EventHandler<GetJobCompletedEventArgs> SendJobCompleted;
     public void SendJobAsync(Guid guid) {
       if (ConnState == NetworkEnum.WcfConnState.Loggedin) {
@@ -223,5 +223,5 @@
           //first deserialize the response
           BinaryFormatter formatter = new BinaryFormatter();
-          ResponseJob response = (ResponseJob)formatter.Deserialize(stream);
+          ResponseObject<JobDto> response = (ResponseObject<JobDto>)formatter.Deserialize(stream);
 
           //second deserialize the BLOB
@@ -236,5 +236,5 @@
           memStream.Close();
 
-          SendJobCompletedEventArgs completedEventArgs = new SendJobCompletedEventArgs(new object[] { response, memStream.GetBuffer() }, e.Error, e.Cancelled, e.UserState);
+          GetJobCompletedEventArgs completedEventArgs = new GetJobCompletedEventArgs(new object[] { response, memStream.GetBuffer() }, e.Error, e.Cancelled, e.UserState);
           SendJobCompleted(sender, completedEventArgs);
         } catch (Exception ex) {
@@ -390,5 +390,5 @@
     }
 
-    public List<HeuristicLab.PluginInfrastructure.CachedHivePluginInfoDto> RequestPlugins(List<HivePluginInfoDto> requestedPlugins) {
+    public IEnumerable<CachedHivePluginInfoDto> RequestPlugins(List<HivePluginInfoDto> requestedPlugins) {
       try {
         Logger.Debug("STARTED: Requesting Plugins for Job");
@@ -396,12 +396,11 @@
         Stream stream = proxy.SendStreamedPlugins(requestedPlugins.ToArray());
         Logger.Debug("ENDED: Getting the stream");
-        BinaryFormatter formatter =
-          new BinaryFormatter();
+        BinaryFormatter formatter = new BinaryFormatter();
         Logger.Debug("STARTED: Deserializing the stream");
-        ResponsePlugin response = (ResponsePlugin)formatter.Deserialize(stream);
+        ResponseList<CachedHivePluginInfoDto> response = (ResponseList<CachedHivePluginInfoDto>)formatter.Deserialize(stream);
         Logger.Debug("ENDED: Deserializing the stream");
         if (stream != null)
           stream.Dispose();
-        return response.Plugins;
+        return response.List;
       } catch (Exception e) {
         HandleNetworkError(e);
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Communication/3.3/app.config	(revision 4254)
@@ -4,5 +4,5 @@
         <bindings>
             <netTcpBinding>
-                <binding name="NetTcpBinding_IClientFacade" closeTimeout="00:01:00"
+                <binding name="NetTcpBinding_ISlaveFacade" closeTimeout="00:01:00"
                     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                     transactionFlow="false" transferMode="Streamed" transactionProtocol="OleTransactions"
@@ -22,7 +22,7 @@
         </bindings>
         <client>
-            <endpoint address="net.tcp://10.42.1.153:9000/HiveServer/ClientCommunicator"
-                binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IClientFacade"
-                contract="ServerService.IClientFacade" name="NetTcpBinding_IClientFacade" />
+            <endpoint address="net.tcp://10.42.1.154:9000/HiveServer/ClientCommunicator"
+                binding="netTcpBinding" bindingConfiguration="NetTcpBinding_ISlaveFacade"
+                contract="ServerService.ISlaveFacade" name="NetTcpBinding_ISlaveFacade" />
         </client>
     </system.serviceModel>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/ConfigurationManager/UptimeManager.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/ConfigurationManager/UptimeManager.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/ConfigurationManager/UptimeManager.cs	(revision 4254)
@@ -14,10 +14,10 @@
   public class UptimeManager {
 
-    private AppointmentContainer _appContainer = null;
+    private AppointmentContainer appContainer = null;
     public AppointmentContainer AppContainer {
       get {
-        if (_appContainer == null)
+        if (appContainer == null)
           RestoreFromHDD();
-        return _appContainer;
+        return appContainer;
       }
     }    
@@ -65,5 +65,5 @@
         try {
           r = new StreamReader(path + "calendar.xml");
-          _appContainer = (AppointmentContainer)s.Deserialize(r);
+          appContainer = (AppointmentContainer)s.Deserialize(r);
           CalendarAvailable = true;
         }
@@ -71,5 +71,5 @@
           Logger.Error("Deserialization of Calendar failed", e);
           Logger.Info("Starting with a new one");
-          _appContainer = new AppointmentContainer();
+          appContainer = new AppointmentContainer();
           CalendarAvailable = false;
         }
@@ -79,5 +79,5 @@
         }
       } else {
-        _appContainer = new AppointmentContainer();
+        appContainer = new AppointmentContainer();
       }
     }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Core.cs	(revision 4254)
@@ -78,17 +78,15 @@
     public void Start() {
       abortRequested = false;
-      Logger.Info("Hive Client started");
+      Logger.Info("Hive Slave started");
       SlaveConsoleServer server = new SlaveConsoleServer();
-      server.StartClientConsoleServer(new Uri("net.tcp://127.0.0.1:8000/ClientConsole/"));
+      server.StartClientConsoleServer(new Uri("net.tcp://127.0.0.1:8000/SlaveConsole/"));
 
       ConfigManager manager = ConfigManager.Instance;
       manager.Core = this;
-
-
 
       //Register all Wcf Service references
       wcfService = WcfService.Instance;
       wcfService.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(wcfService_LoginCompleted);
-      wcfService.SendJobCompleted += new EventHandler<SendJobCompletedEventArgs>(wcfService_SendJobCompleted);
+      wcfService.SendJobCompleted += new EventHandler<GetJobCompletedEventArgs>(wcfService_GetJobCompleted);
       wcfService.StoreFinishedJobResultCompleted += new EventHandler<StoreFinishedJobResultCompletedEventArgs>(wcfService_StoreFinishedJobResultCompleted);
       wcfService.ProcessSnapshotCompleted += new EventHandler<ProcessSnapshotCompletedEventArgs>(wcfService_ProcessSnapshotCompleted);
@@ -96,4 +94,5 @@
       wcfService.ServerChanged += new EventHandler(wcfService_ServerChanged);
       wcfService.Connected += new EventHandler(wcfService_Connected);
+
       //Recover Server IP and Port from the Settings Framework
       ConnectionContainer cc = ConfigManager.Instance.GetServerIPAndPort();
@@ -131,12 +130,10 @@
             Logger.Error("AbortJob: Engine doesn't exist");
           break;
+
         //Job has been successfully aborted
-
-
         case MessageContainer.MessageType.JobAborted:
           Guid jobId = new Guid(container.JobId.ToString());
           KillAppDomain(jobId);
           break;
-
 
         //Request a Snapshot from the Execution Engine
@@ -145,7 +142,6 @@
             engines[container.JobId].RequestSnapshot();
           else
-            Logger.Error("RequestSnapshot: Engine doesn't exist");
-          break;
-
+            Logger.Error("RequestSnapshot: Engine with Job doesn't exist");
+          break;
 
         //Snapshot is ready and can be sent back to the Server
@@ -153,5 +149,4 @@
           ThreadPool.QueueUserWorkItem(new WaitCallback(GetSnapshot), container.JobId);
           break;
-
 
         //Pull a Job from the Server
@@ -243,5 +238,6 @@
           KillAppDomain(jId);
         }
-      } catch (InvalidStateException ise) {
+      }
+      catch (InvalidStateException ise) {
         Logger.Error("Invalid State while Snapshoting:", ise);
       }
@@ -302,51 +298,50 @@
     /// <param name="sender"></param>
     /// <param name="e"></param>
-    void wcfService_SendJobCompleted(object sender, SendJobCompletedEventArgs e) {
+    void wcfService_GetJobCompleted(object sender, GetJobCompletedEventArgs e) {
       if (e.Result.StatusMessage != ApplicationConstants.RESPONSE_COMMUNICATOR_NO_JOBS_LEFT) {
-        Logger.Info("Received new job with id " + e.Result.Job.Id);
+        Logger.Info("Received new job with id " + e.Result.Obj.Id);
         bool sandboxed = false;
-        Logger.Debug("Fetching plugins for job " + e.Result.Job.Id);
-
-        PluginCache.Instance.PreparePlugins(e.Result.Job.PluginsNeeded);
-
-        PluginCache.Instance.CopyPluginsForJob(e.Result.Job.PluginsNeeded, e.Result.Job.Id);
+        Logger.Debug("Fetching plugins for job " + e.Result.Obj.Id);
+
+        PluginCache.Instance.PreparePlugins(e.Result.Obj.PluginsNeeded);
+
+        PluginCache.Instance.CopyPluginsForJob(e.Result.Obj.PluginsNeeded, e.Result.Obj.Id);
 
         //        foreach (CachedHivePluginInfoDto plugininfo in PluginCache.Instance.GetPlugins(e.Result.Job.PluginsNeeded))
         //        files.AddRange(plugininfo.PluginFiles);
-        Logger.Debug("Plugins fetched for job " + e.Result.Job.Id);
+        Logger.Debug("Plugins fetched for job " + e.Result.Obj.Id);
         try {
-          String pluginDir = Path.Combine(PluginCache.PLUGIN_REPO, e.Result.Job.Id.ToString());
-          
+          String pluginDir = Path.Combine(PluginCache.PLUGIN_REPO, e.Result.Obj.Id.ToString());
+
           AppDomain appDomain = HeuristicLab.PluginInfrastructure.Sandboxing.SandboxManager.CreateAndInitSandbox(pluginDir, null);
           appDomain.UnhandledException += new UnhandledExceptionEventHandler(appDomain_UnhandledException);
           lock (engines) {
-            if (!jobs.ContainsKey(e.Result.Job.Id)) {
-              jobs.Add(e.Result.Job.Id, e.Result.Job);
-              appDomains.Add(e.Result.Job.Id, appDomain);
+            if (!jobs.ContainsKey(e.Result.Obj.Id)) {
+              jobs.Add(e.Result.Obj.Id, e.Result.Obj);
+              appDomains.Add(e.Result.Obj.Id, appDomain);
               Logger.Debug("Creating AppDomain");
-              Executor engine =
-                (Executor)
-                appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
+              Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
               Logger.Debug("Created AppDomain");
-              engine.JobId = e.Result.Job.Id;
+              engine.JobId = e.Result.Obj.Id;
               engine.Queue = MessageQueue.GetInstance();
-              Logger.Debug("Starting Engine for job " + e.Result.Job.Id);
+              Logger.Debug("Starting Engine for job " + e.Result.Obj.Id);
               engine.Start(e.Data);
-              engines.Add(e.Result.Job.Id, engine);
+              engines.Add(e.Result.Obj.Id, engine);
 
               SlaveStatusInfo.JobsFetched++;
-
               Logger.Info("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
             }
           }
-        } catch (Exception exception) {
-          Logger.Error("Creating the Appdomain and loading the job failed for job " + e.Result.Job.Id);
+        }
+        catch (Exception exception) {
+          Logger.Error("Creating the Appdomain and loading the job failed for job " + e.Result.Obj.Id);
           Logger.Error("Error thrown is: ", exception);
           CurrentlyFetching = false;
-          KillAppDomain(e.Result.Job.Id);
-          wcfService.StoreFinishedJobResultsSync(ConfigManager.Instance.GetClientInfo().Id, e.Result.Job.Id, new byte[] { }, 1, exception, true);
-        }
-      } else
+          KillAppDomain(e.Result.Obj.Id);
+          wcfService.StoreFinishedJobResultsSync(ConfigManager.Instance.GetClientInfo().Id, e.Result.Obj.Id, new byte[] { }, 1, exception, true);
+        }
+      } else {
         Logger.Info("No more jobs left!");
+      }
       CurrentlyFetching = false;
     }
@@ -480,5 +475,6 @@
           PluginCache.Instance.DeletePluginsForJob(id);
           GC.Collect();
-        } catch (Exception ex) {
+        }
+        catch (Exception ex) {
           Logger.Error("Exception when unloading the appdomain: ", ex);
         }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Heartbeat.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Heartbeat.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/Heartbeat.cs	(revision 4254)
@@ -124,5 +124,5 @@
 
     void wcfService_ProcessHeartBeatCompleted(object sender, ProcessHeartBeatCompletedEventArgs e) {
-      Logger.Debug("Heartbeat received");
+      Logger.Debug("Heartbeat Response received");
       e.Result.ActionRequest.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc));
     }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/JobStorage/JobStorageManager.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/JobStorage/JobStorageManager.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/JobStorage/JobStorageManager.cs	(revision 4254)
@@ -15,18 +15,18 @@
 namespace HeuristicLab.Hive.Slave.Core.JobStorage {
   public class JobStorageManager {
-    
+
     private static List<JobStorageInfo> storedJobsList = new List<JobStorageInfo>();
 
     private static String path = System.IO.Directory.GetCurrentDirectory() + "\\Hive.Slave.Jobs\\";
-    
+
     public static void PersistObjectToDisc(String serverIP, long serverPort, Guid jobId, byte[] job) {
       String filename = serverIP + "." + serverPort + "." + jobId.ToString();
       JobStorageInfo info = new JobStorageInfo { JobID = jobId, ServerIP = serverIP, ServerPort = serverPort, TimeFinished = DateTime.Now };
-      
+
       Stream jobstream = null;
       try {
         jobstream = File.Create(path + filename + ".dat");
         jobstream.Write(job, 0, job.Length);
-        storedJobsList.Add(info);        
+        storedJobsList.Add(info);
         Logger.Info("Job " + info.JobID + " stored on the harddisc");
       }
@@ -35,16 +35,15 @@
       }
       finally {
-        if(jobstream!=null)
+        if (jobstream != null)
           jobstream.Close();
       }
 
       StoreJobList();
-
     }
 
     public static void CheckAndSubmitJobsFromDisc() {
-      for(int index=storedJobsList.Count; index > 0; index--) {
-        if (WcfService.Instance.ConnState == NetworkEnum.WcfConnState.Loggedin && (storedJobsList[index-1].ServerIP == WcfService.Instance.ServerIP && storedJobsList[index-1].ServerPort == WcfService.Instance.ServerPort)) {
-          String filename = storedJobsList[index-1].ServerIP + "." + storedJobsList[index-1].ServerPort + "." + storedJobsList[index-1].JobID.ToString();          
+      for (int index = storedJobsList.Count; index > 0; index--) {
+        if (WcfService.Instance.ConnState == NetworkEnum.WcfConnState.Loggedin && (storedJobsList[index - 1].ServerIP == WcfService.Instance.ServerIP && storedJobsList[index - 1].ServerPort == WcfService.Instance.ServerPort)) {
+          String filename = storedJobsList[index - 1].ServerIP + "." + storedJobsList[index - 1].ServerPort + "." + storedJobsList[index - 1].JobID.ToString();
           Logger.Info("Sending stored job " + storedJobsList[index - 1].JobID + " to the server");
           try {
@@ -59,5 +58,5 @@
             SlaveStatusInfo.JobsProcessed++;
             storedJobsList.Remove(storedJobsList[index - 1]);
-            File.Delete(path + filename + ".dat"); 
+            File.Delete(path + filename + ".dat");
           }
           catch (Exception e) {
@@ -66,12 +65,11 @@
             StoreJobList();
           }
-      
-         }
         }
+      }
     }
 
     public static void StoreJobList() {
       XmlSerializer serializer = new XmlSerializer(typeof(List<JobStorageInfo>));
-      TextWriter writer = new StreamWriter(Path.Combine(path ,"list.xml"));
+      TextWriter writer = new StreamWriter(Path.Combine(path, "list.xml"));
       serializer.Serialize(writer, storedJobsList);
       writer.Close();
@@ -82,8 +80,8 @@
       if (!Directory.Exists(path))
         Directory.CreateDirectory(path);
-            
+
       XmlSerializer serializer = new XmlSerializer(typeof(List<JobStorageInfo>));
       FileStream stream = null;
-      if(File.Exists(Path.Combine(path ,"list.xml"))) {
+      if (File.Exists(Path.Combine(path, "list.xml"))) {
         try {
           stream = new FileStream(Path.Combine(path, "list.xml"), FileMode.Open);
@@ -94,6 +92,7 @@
         catch (Exception e) {
           Logger.Error("Exception while loading the Stored Job List", e);
-        } finally {
-          if(stream != null) 
+        }
+        finally {
+          if (stream != null)
             stream.Dispose();
         }
@@ -103,5 +102,4 @@
       }
     }
-    
   }
 }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs	(revision 4253)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.Core/3.3/PluginCache.cs	(revision 4254)
@@ -97,12 +97,9 @@
 
       Logger.Debug("First run - Update the plugins in the cache");
-
       localPlugins.AddRange(missingPlugins);
-
-      List<CachedHivePluginInfoDto> updateablePlugins = WcfService.Instance.RequestPlugins(localPlugins);
+      IEnumerable<CachedHivePluginInfoDto> updateablePlugins = WcfService.Instance.RequestPlugins(localPlugins);
 
       foreach (CachedHivePluginInfoDto updateablePlugin in updateablePlugins) {
-        PluginDescription pd =
-          cachedPlugins.Where(cachedPlugin => cachedPlugin.Name.Equals(updateablePlugin.Name)).SingleOrDefault();
+        PluginDescription pd = cachedPlugins.Where(cachedPlugin => cachedPlugin.Name.Equals(updateablePlugin.Name)).SingleOrDefault();
 
         if (pd != null) {
@@ -115,7 +112,4 @@
         Logger.Debug("deleted old files");
         Logger.Debug("creating new files");
-
-
-
         foreach (HivePluginFile pf in updateablePlugin.PluginFiles) {
           File.WriteAllBytes(PLUGIN_REPO + pf.Name.Split('\\').Last(), pf.BinaryFile);
