Index: trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.Designer.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.Designer.cs	(revision 6994)
@@ -237,4 +237,5 @@
       this.Name = "ResourcesView";
       this.Size = new System.Drawing.Size(853, 553);
+      this.Load += new System.EventHandler(this.ResourcesView_Load);
       this.splitSlaves.Panel1.ResumeLayout(false);
       this.splitSlaves.Panel2.ResumeLayout(false);
Index: trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs	(revision 6994)
@@ -56,6 +56,4 @@
       HiveAdminClient.Instance.Refreshing += new EventHandler(Instance_Refreshing);
       HiveAdminClient.Instance.Refreshed += new EventHandler(Instance_Refreshed);
-
-      UpdateResourcesAsync();
     }
 
@@ -400,4 +398,8 @@
       UpdateResourcesAsync();
     }
+
+    private void ResourcesView_Load(object sender, EventArgs e) {
+      UpdateResourcesAsync();
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs	(revision 6994)
@@ -149,51 +149,44 @@
       clientCom.LogMessage(string.Format("Message: {0} for task: {1} ", container.Message.ToString(), container.TaskId));
 
-      if (container is ExecutorMessageContainer<Guid>) {
-        ExecutorMessageContainer<Guid> c = (ExecutorMessageContainer<Guid>)container;
-        c.execute();
-      } else if (container is MessageContainer) {
-        switch (container.Message) {
-          case MessageContainer.MessageType.CalculateTask:
-            CalculateTaskAsync(container.TaskId);
-            break;
-          case MessageContainer.MessageType.AbortTask:
-            AbortTaskAsync(container.TaskId);
-            break;
-          case MessageContainer.MessageType.StopTask:
-            StopTaskAsync(container.TaskId);
-            break;
-          case MessageContainer.MessageType.PauseTask:
-            PauseTaskAsync(container.TaskId);
-            break;
-          case MessageContainer.MessageType.StopAll:
-            DoStopAll();
-            break;
-          case MessageContainer.MessageType.PauseAll:
-            DoPauseAll();
-            break;
-          case MessageContainer.MessageType.AbortAll:
-            DoAbortAll();
-            break;
-          case MessageContainer.MessageType.ShutdownSlave:
-            ShutdownCore();
-            break;
-          case MessageContainer.MessageType.Restart:
-            DoStartSlave();
-            break;
-          case MessageContainer.MessageType.Sleep:
-            Sleep();
-            break;
-          case MessageContainer.MessageType.SayHello:
-            wcfService.Connect(configManager.GetClientInfo());
-            break;
-          case MessageContainer.MessageType.NewHBInterval:
-            int interval = wcfService.GetNewHeartbeatInterval(ConfigManager.Instance.GetClientInfo().Id);
-            if (interval != -1) {
-              HeartbeatManager.Interval = TimeSpan.FromSeconds(interval);
-            }
-            break;
-        }
-      } else {
-        clientCom.LogMessage("Unknown MessageContainer: " + container);
+      switch (container.Message) {
+        case MessageContainer.MessageType.CalculateTask:
+          CalculateTaskAsync(container.TaskId);
+          break;
+        case MessageContainer.MessageType.AbortTask:
+          AbortTaskAsync(container.TaskId);
+          break;
+        case MessageContainer.MessageType.StopTask:
+          StopTaskAsync(container.TaskId);
+          break;
+        case MessageContainer.MessageType.PauseTask:
+          PauseTaskAsync(container.TaskId);
+          break;
+        case MessageContainer.MessageType.StopAll:
+          DoStopAll();
+          break;
+        case MessageContainer.MessageType.PauseAll:
+          DoPauseAll();
+          break;
+        case MessageContainer.MessageType.AbortAll:
+          DoAbortAll();
+          break;
+        case MessageContainer.MessageType.ShutdownSlave:
+          ShutdownCore();
+          break;
+        case MessageContainer.MessageType.Restart:
+          DoStartSlave();
+          break;
+        case MessageContainer.MessageType.Sleep:
+          Sleep();
+          break;
+        case MessageContainer.MessageType.SayHello:
+          wcfService.Connect(configManager.GetClientInfo());
+          break;
+        case MessageContainer.MessageType.NewHBInterval:
+          int interval = wcfService.GetNewHeartbeatInterval(ConfigManager.Instance.GetClientInfo().Id);
+          if (interval != -1) {
+            HeartbeatManager.Interval = TimeSpan.FromSeconds(interval);
+          }
+          break;
       }
     }
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj	(revision 6994)
@@ -144,5 +144,4 @@
     <Compile Include="ServiceClients\Slave.cs" />
     <Compile Include="ServiceClients\LightweightTask.cs" />
-    <Compile Include="ServiceClients\ExecutorMessageContainer.cs" />
     <Compile Include="ServiceClients\MessageContainer.cs" />
     <Compile Include="ServiceClients\HiveServiceClient.cs" />
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/HiveJobs/HiveTask.cs	(revision 6994)
@@ -153,4 +153,7 @@
 
     #region Constructors and Cloning
+    [StorableConstructor]
+    protected HiveTask(bool deserializing) { }
+
     public HiveTask() {
       this.Task = new Task() { CoresNeeded = 1, MemoryNeeded = 0 };
@@ -515,6 +518,8 @@
     #region Constructors and Cloning
     public HiveTask() : base() { }
+    [StorableConstructor]
+    protected HiveTask(bool deserializing) { }
     public HiveTask(T itemJob) : base(itemJob, true) { }
-    protected HiveTask(HiveTask original, Cloner cloner)
+    protected HiveTask(HiveTask<T> original, Cloner cloner)
       : base(original, cloner) {
     }
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs	(revision 6994)
@@ -208,5 +208,5 @@
     protected RefreshableJob(RefreshableJob original, Cloner cloner) {
       cloner.RegisterClonedObject(original, this);
-      this.Job = original.Job;
+      this.Job = cloner.Clone(original.Job);
       this.IsControllable = original.IsControllable;
       this.log = cloner.Clone(original.log);
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/ExecutorMessageContainer.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/ExecutorMessageContainer.cs	(revision 6993)
+++ 	(revision )
@@ -1,59 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Clients.Hive {
-  /// <summary>
-  /// This class is used to communicate from the executor to the core, e.g. 
-  /// if the appdomain should be killed
-  /// </summary>
-  [StorableClass]
-  [Serializable]
-  public class ExecutorMessageContainer<CallbackParameterType> : MessageContainer {
-
-    [Storable]
-    public Action<CallbackParameterType> Callback;
-    public CallbackParameterType CallbackParameter;
-
-    public ExecutorMessageContainer() : base() { }
-
-    public ExecutorMessageContainer(MessageType message, Guid parentJobId, Action<CallbackParameterType> callback)
-      : base(message, parentJobId) {
-      this.Callback = callback;
-    }
-
-    protected ExecutorMessageContainer(ExecutorMessageContainer<CallbackParameterType> original, Cloner cloner)
-      : base(original, cloner) {
-      this.Callback = original.Callback;
-    }
-
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ExecutorMessageContainer<CallbackParameterType>(this, cloner);
-    }
-
-    public void execute() {
-      Callback(CallbackParameter);
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/JobData.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/JobData.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/JobData.cs	(revision 6994)
@@ -29,5 +29,8 @@
     protected TaskData(TaskData original, Cloner cloner) {
       cloner.RegisterClonedObject(original, this);
-      if (original.Data != null) this.Data = new byte[original.Data.Length]; Array.Copy(original.Data, this.Data, original.Data.Length);
+      if (original.Data != null) {
+        this.Data = new byte[original.Data.Length];
+        Array.Copy(original.Data, this.Data, original.Data.Length);
+      }
       this.LastUpdate = original.LastUpdate;
     }
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/PluginData.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/PluginData.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/PluginData.cs	(revision 6994)
@@ -31,7 +31,8 @@
     protected PluginData(PluginData original, Cloner cloner)
       : base(original, cloner) {
-      if (original.Data != null)
+      if (original.Data != null) {
         this.Data = new byte[original.Data.Length];
-      Array.Copy(original.Data, this.Data, original.Data.Length);
+        Array.Copy(original.Data, this.Data, original.Data.Length);
+      }
       this.FileName = original.FileName;
       this.PluginId = original.PluginId;
Index: trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/Task.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/Task.cs	(revision 6993)
+++ trunk/sources/HeuristicLab.Clients.Hive/3.3/ServiceClients/Task.cs	(revision 6994)
@@ -34,5 +34,7 @@
       this.CoresNeeded = original.CoresNeeded;
       this.MemoryNeeded = original.MemoryNeeded;
-      this.PluginsNeededIds = new List<Guid>(original.PluginsNeededIds);
+      if (original.PluginsNeededIds != null) {
+        this.PluginsNeededIds = new List<Guid>(original.PluginsNeededIds);
+      }
       this.LastHeartbeat = original.LastHeartbeat;
       this.IsParentTask = original.IsParentTask;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 6993)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 6994)
@@ -626,4 +626,20 @@
       <Name>HeuristicLab.Clients.Common-3.3</Name>
     </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Administrator\3.3\HeuristicLab.Clients.Hive.Administrator-3.3.csproj">
+      <Project>{5211F1AD-BBA2-4C62-8749-DCA0A25CF5D8}</Project>
+      <Name>HeuristicLab.Clients.Hive.Administrator-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive.JobManager\3.3\HeuristicLab.Clients.Hive.JobManager-3.3.csproj">
+      <Project>{DBFD7205-61AF-40EF-8776-3052DEF91CF3}</Project>
+      <Name>HeuristicLab.Clients.Hive.JobManager-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Views\3.3\HeuristicLab.Clients.Hive.Views-3.3.csproj">
+      <Project>{E1D6C801-892A-406A-B606-F158E36DD3C3}</Project>
+      <Name>HeuristicLab.Clients.Hive.Views-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive\3.3\HeuristicLab.Clients.Hive-3.3.csproj">
+      <Project>{B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}</Project>
+      <Name>HeuristicLab.Clients.Hive-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.CodeEditor\3.3\HeuristicLab.CodeEditor-3.3.csproj">
       <Project>{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}</Project>
@@ -689,4 +705,8 @@
       <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
       <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Hive\3.3\HeuristicLab.Hive-3.3.csproj">
+      <Project>{F98A1740-9AC9-4D36-A582-6A2D0D06978D}</Project>
+      <Name>HeuristicLab.Hive-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
