Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj	(revision 5156)
@@ -0,0 +1,91 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{464D70B8-2D91-485C-B622-22E4A4891C68}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Clients.Hive.Slave.ConsoleClient</RootNamespace>
+    <AssemblyName>HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject>
+    </StartupObject>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <OutputPath>bin\Debug\</OutputPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <OutputPath>bin\Release\</OutputPath>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SlaveCommListener.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave.Tests\HeuristicLab.Clients.Hive.Slave.Tests-3.4.csproj">
+      <Project>{C4CBD11E-1B83-464A-B0AD-0DC0FF7E57AA}</Project>
+      <Name>HeuristicLab.Clients.Hive.Slave.Tests-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive.Slave\3.4\HeuristicLab.Clients.Hive.Slave-3.4.csproj">
+      <Project>{989FE92B-484E-41EE-87E2-6A24AF0381D8}</Project>
+      <Name>HeuristicLab.Clients.Hive.Slave-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Clients.Hive\3.4\HeuristicLab.Clients.Hive-3.4.csproj">
+      <Project>{B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}</Project>
+      <Name>HeuristicLab.Clients.Hive-3.4</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Hive\3.4\HeuristicLab.Hive-3.4.csproj">
+      <Project>{F98A1740-9AC9-4D36-A582-6A2D0D06978D}</Project>
+      <Name>HeuristicLab.Hive-3.4</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Program.cs	(revision 5156)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ServiceModel;
+using System.Threading;
+using HeuristicLab.Clients.Hive.Salve;
+using HeuristicLab.Clients.Hive.Slave.Tests;
+
+
+namespace HeuristicLab.Clients.Hive.Slave.ConsoleClient {
+  public class Program {
+    static void Main(string[] args) {
+      //mock the hive service for testing purposes
+      ServiceLocator.Instance = new MockServiceLocator();
+
+      //slave part
+      Core core = new Core();
+      ServiceHost slaveComm = new ServiceHost(typeof(SlaveCommunicationService));
+      slaveComm.Open();
+
+      Console.WriteLine("Slave communication service started ...");
+      //mock a slave client
+      SlaveCommListener listener = new SlaveCommListener();
+      listener.Open();
+
+      Console.WriteLine("Starting core ...");
+      Thread coreThread = new Thread(core.Start);
+      coreThread.IsBackground = true; //dont keep app alive
+      coreThread.Start();
+
+      Console.WriteLine("Press a key to quit");
+      Console.ReadKey();
+      core.ShutdownCore();
+      listener.Close();
+
+      if (slaveComm.State != CommunicationState.Closed)
+        slaveComm.Close();
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Properties/AssemblyInfo.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/Properties/AssemblyInfo.cs	(revision 5156)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4")]
+[assembly: AssemblyCopyright("Copyright ©  2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e1acd018-8b43-4a22-8081-d7ad0a9404f4")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/SlaveCommListener.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/SlaveCommListener.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/SlaveCommListener.cs	(revision 5156)
@@ -0,0 +1,67 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+
+namespace HeuristicLab.Clients.Hive.Slave.ConsoleClient {
+
+  /// <summary>
+  /// mock a client, simply print out messages
+  /// </summary>
+  [CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
+  class SlaveCommListener : ISlaveCommunicationCallbacks, IDisposable {
+    ISlaveCommunication pipeProxy;
+    DuplexChannelFactory<ISlaveCommunication> pipeFactory;
+
+    public void Open() {
+      //TODO: read info from app.config
+      pipeFactory = new DuplexChannelFactory<ISlaveCommunication>(this,
+        new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/HeuristicLabSlaveCom"));
+
+      pipeProxy = pipeFactory.CreateChannel();
+      pipeProxy.Subscribe();
+    }
+
+    public void Close() {
+      pipeProxy.Unsubscribe();
+      if (pipeFactory.State != CommunicationState.Closed)
+        pipeFactory.Close();
+    }
+
+    public void OnStatusChanged(Salve.StatusCommons status) {
+      System.Console.WriteLine("SlaveCommListener: " + status);
+    }
+
+    public void OnMessageLogged(string message) {
+      System.Console.WriteLine("SlaveCommListener: " + message);
+    }
+
+    public void OnShutdown() {
+      System.Console.WriteLine("SlaveCommListner: Slave quit");
+    }
+
+    public void Dispose() {
+      Close();
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app.config
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app.config	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4/app.config	(revision 5156)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<configuration>
+   
+  <system.serviceModel>
+    <services>
+      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom" binding="netNamedPipeBinding" contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"/>
+      </service>
+    </services>
+  </system.serviceModel>
+
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockHiveService.cs	(revision 5156)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
 using System.IO;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockJob.cs	(revision 5156)
@@ -1,13 +1,31 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using System.Diagnostics;
+using System.Threading;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
 using HeuristicLab.Hive;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Common;
-using System.Drawing;
-using System.Threading;
-using System.Diagnostics;
 
 namespace HeuristicLab.Clients.Hive.Slave.Tests {
@@ -172,9 +190,9 @@
       if (handler != null) handler(this, EventArgs.Empty);
     }
-                                                      
+
     public event EventHandler JobFailed;
     protected virtual void OnJobFailed(Exception e) {
       EventHandler handler = JobFailed;
-      EventArgs<Exception> ev = new EventArgs<Exception>(e);          
+      EventArgs<Exception> ev = new EventArgs<Exception>(e);
       if (handler != null) handler(this, ev);
     }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/Mocks/MockServiceLocator.cs	(revision 5156)
@@ -1,11 +1,28 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
 using HeuristicLab.Clients.Common;
 using HeuristicLab.Services.Hive.Common.ServiceContracts;
 
 namespace HeuristicLab.Clients.Hive.Slave.Tests {
-  internal class MockServiceLocator : IServiceLocator {
+  public class MockServiceLocator : IServiceLocator {
 
     private MockHiveService service;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/PluginLoader.cs	(revision 5156)
@@ -1,3 +1,23 @@
-﻿
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
 using System;
 using System.Collections.Generic;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Tests/SlaveTest.cs	(revision 5156)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/Core.cs	(revision 5156)
@@ -26,4 +26,5 @@
 using System.Threading;
 using HeuristicLab.Clients.Hive.Slave;
+using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -45,7 +46,8 @@
 
     private WcfService wcfService;
-    public HeartbeatManager heartbeatManager;
-
+    private HeartbeatManager heartbeatManager;
     private int coreThreadId;
+
+    private ISlaveCommunication ClientCom;
 
     public Dictionary<Guid, Executor> ExecutionEngines {
@@ -66,8 +68,7 @@
     public void Start() {
       abortRequested = false;
-      Logger.Info("Hive Slave started");
-      //TODO: implement slave console server
-      //SlaveConsoleServer server = new SlaveConsoleServer();
-      //server.Start();
+
+      ClientCom = SlaveClientCom.Instance.ClientCom;
+      ClientCom.LogMessage("Hive Slave started");
 
       ConfigManager manager = ConfigManager.Instance;
@@ -82,6 +83,5 @@
       DeRegisterServiceEvents();
 
-      //server.Close();
-      Logger.Info("Program shutdown");
+      ClientCom.LogMessage("Program shutdown");
     }
 
@@ -101,9 +101,20 @@
 
     private void RegisterServiceEvents() {
-      //TODO
+      WcfService.Instance.Connected += new EventHandler(wcfService_Connected);
+      WcfService.Instance.ExceptionOccured += new EventHandler<EventArgs<Exception>>(wcfService_ExceptionOccured);
     }
 
     private void DeRegisterServiceEvents() {
-      //TODO
+      WcfService.Instance.Connected -= wcfService_Connected;
+      WcfService.Instance.ExceptionOccured -= wcfService_ExceptionOccured;
+    }
+
+    void wcfService_ExceptionOccured(object sender, EventArgs<Exception> e) {
+      ClientCom.LogMessage("Connection to server interruped with exception: " + e.Value.Message);
+      ShutdownCore();
+    }
+
+    void wcfService_Connected(object sender, EventArgs e) {
+      ClientCom.LogMessage("Connected successfully to Hive server");
     }
 
@@ -113,5 +124,5 @@
     /// <param name="container">The Container, containing the message</param>
     private void DetermineAction(MessageContainer container) {
-      Logger.Info("Message: " + container.Message.ToString() + " for job: " + container.JobId);
+      ClientCom.LogMessage("Message: " + container.Message.ToString() + " for job: " + container.JobId);
       //TODO: find a better solution
       if (container is ExecutorMessageContainer<Guid>) {
@@ -129,5 +140,5 @@
                 // appdomain already unloaded. Finishing job probably ongoing
               } else
-              Logger.Error("AbortJob: Engine doesn't exist");
+              ClientCom.LogMessage("AbortJob: Engine doesn't exist");
             break;
 
@@ -146,19 +157,19 @@
         }
       } else {
-        Logger.Warn("Unknown MessageContainer: " + container);
+        ClientCom.LogMessage("Unknown MessageContainer: " + container);
       }
     }
 
     public void ShutdownCore() {
-      Logger.Info("Shutdown Signal received");
-      Logger.Debug("Stopping heartbeat");
+      ClientCom.LogMessage("Shutdown Signal received");
+      ClientCom.LogMessage("Stopping heartbeat");
       heartbeatManager.StopHeartBeat();
       abortRequested = true;
-      Logger.Debug("Logging out");
+      ClientCom.LogMessage("Logging out");
 
       lock (engines) {
-        Logger.Debug("engines locked");
+        ClientCom.LogMessage("engines locked");
         foreach (KeyValuePair<Guid, AppDomain> kvp in appDomains) {
-          Logger.Debug("Shutting down Appdomain for " + kvp.Key);
+          ClientCom.LogMessage("Shutting down Appdomain for " + kvp.Key);
           appDomains[kvp.Key].UnhandledException -= new UnhandledExceptionEventHandler(appDomain_UnhandledException);
           AppDomain.Unload(kvp.Value);
@@ -166,4 +177,6 @@
       }
       WcfService.Instance.Disconnect();
+      ClientCom.Shutdown();
+      SlaveClientCom.Close();
     }
 
@@ -176,5 +189,5 @@
     public void PauseJob(JobData data) {
       if (!Jobs.ContainsKey(data.JobId)) {
-        Logger.Error("Can't find job with id " + data.JobId);
+        ClientCom.LogMessage("Can't find job with id " + data.JobId);
       } else {
         Job job = Jobs[data.JobId];
@@ -194,11 +207,11 @@
       try {
         Guid jId = (Guid)jobId;
-        Logger.Info("Getting the finished job with id: " + jId);
+        ClientCom.LogMessage("Getting the finished job with id: " + jId);
         if (!engines.ContainsKey(jId)) {
-          Logger.Info("Engine doesn't exist");
+          ClientCom.LogMessage("Engine doesn't exist");
           return;
         }
         if (!jobs.ContainsKey(jId)) {
-          Logger.Info("Job doesn't exist");
+          ClientCom.LogMessage("Job doesn't exist");
           return;
         }
@@ -210,10 +223,10 @@
 
         try {
-          Logger.Info("Sending the finished job with id: " + jId);
+          ClientCom.LogMessage("Sending the finished job with id: " + jId);
           wcfService.UpdateJob(cJob, sJob);
           SlaveStatusInfo.JobsProcessed++;
         }
         catch (Exception e) {
-          Logger.Info("Transmitting to server failed. Storing the finished job with id: " + jId + " to hdd (" + e.ToString() + ")");
+          ClientCom.LogMessage("Transmitting to server failed. Storing the finished job with id: " + jId + " to hdd (" + e.ToString() + ")");
         }
         finally {
@@ -233,5 +246,5 @@
     /// <param name="e"></param>
     private void StartJobInAppDomain(Job myJob, JobData jobData) {
-      Logger.Info("Received new job with id " + myJob.Id);
+      ClientCom.LogMessage("Received new job with id " + myJob.Id);
       String pluginDir = Path.Combine(PluginCache.Instance.PluginTempBaseDir, myJob.Id.ToString());
       bool pluginsPrepared = false;
@@ -239,9 +252,9 @@
       try {
         PluginCache.Instance.PreparePlugins(myJob, jobData);
-        Logger.Debug("Plugins fetched for job " + myJob.Id);
+        ClientCom.LogMessage("Plugins fetched for job " + myJob.Id);
         pluginsPrepared = true;
       }
       catch (Exception exception) {
-        Logger.Error(string.Format("Copying plugins for job {0} failed: {1}", myJob.Id, exception));
+        ClientCom.LogMessage(string.Format("Copying plugins for job {0} failed: {1}", myJob.Id, exception));
       }
 
@@ -254,14 +267,14 @@
               jobs.Add(myJob.Id, myJob);
               appDomains.Add(myJob.Id, appDomain);
-              Logger.Debug("Creating AppDomain");
+              ClientCom.LogMessage("Creating AppDomain");
               Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
-              Logger.Debug("Created AppDomain");
+              ClientCom.LogMessage("Created AppDomain");
               engine.JobId = myJob.Id;
               engine.core = this;
-              Logger.Debug("Starting Engine for job " + myJob.Id);
+              ClientCom.LogMessage("Starting Engine for job " + myJob.Id);
               engines.Add(myJob.Id, engine);
               engine.Start(jobData.Data);
               SlaveStatusInfo.JobsFetched++;
-              Logger.Info("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
+              ClientCom.LogMessage("Increment FetchedJobs to:" + SlaveStatusInfo.JobsFetched);
             }
           }
@@ -269,6 +282,6 @@
         }
         catch (Exception exception) {
-          Logger.Error("Creating the Appdomain and loading the job failed for job " + myJob.Id);
-          Logger.Error("Error thrown is: ", exception);
+          ClientCom.LogMessage("Creating the Appdomain and loading the job failed for job " + myJob.Id);
+          ClientCom.LogMessage("Error thrown is: " + exception.ToString());
           KillAppDomain(myJob.Id);
         }
@@ -278,5 +291,5 @@
     public event EventHandler<EventArgs<Exception>> ExceptionOccured;
     private void OnExceptionOccured(Exception e) {
-      Logger.Error("Error: " + e.ToString());
+      ClientCom.LogMessage("Error: " + e.ToString());
       var handler = ExceptionOccured;
       if (handler != null) handler(this, new EventArgs<Exception>(e));
@@ -284,5 +297,5 @@
 
     private void appDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
-      Logger.Error("Exception in AppDomain: " + e.ExceptionObject.ToString());
+      ClientCom.LogMessage("Exception in AppDomain: " + e.ExceptionObject.ToString());
       KillAppDomain(new Guid(e.ExceptionObject.ToString()));
     }
@@ -316,5 +329,5 @@
     public void KillAppDomain(Guid id) {
       if (EnqueueExecutorMessage<Guid>(KillAppDomain, id)) {
-        Logger.Debug("Shutting down Appdomain for Job " + id);
+        ClientCom.LogMessage("Shutting down Appdomain for Job " + id);
         lock (engines) {
           try {
@@ -334,5 +347,5 @@
                 }
                 catch (CannotUnloadAppDomainException) {
-                  Logger.Error("Could not unload AppDomain, will try again in 1 sec.");
+                  ClientCom.LogMessage("Could not unload AppDomain, will try again in 1 sec.");
                   Thread.Sleep(1000);
                   repeat--;
@@ -350,5 +363,5 @@
           }
           catch (Exception ex) {
-            Logger.Error("Exception when unloading the appdomain: ", ex);
+            ClientCom.LogMessage("Exception when unloading the appdomain: " + ex.ToString());
           }
         }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/DummyListener.cs	(revision 5156)
@@ -0,0 +1,44 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+
+namespace HeuristicLab.Clients.Hive.Slave {
+
+  [CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
+  internal class DummyListener : ISlaveCommunicationCallbacks {
+
+    public void OnStatusChanged(Salve.StatusCommons status) {
+      throw new NotImplementedException("Dummy Listener, don't subscribe it!");
+    }
+
+    public void OnMessageLogged(string message) {
+      throw new NotImplementedException("Dummy Listener, don't subscribe it!");
+    }
+
+    public void OnShutdown() {
+      throw new NotImplementedException("Dummy Listener, don't subscribe it!");
+    }
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs	(revision 5156)
@@ -97,14 +97,14 @@
               };
 
-              Logger.Debug("Sending Heartbeat: " + heartBeatData);
+              SlaveClientCom.Instance.ClientCom.LogMessage("Sending Heartbeat: " + heartBeatData);
               List<MessageContainer> msgs = wcfService.SendHeartbeat(heartBeatData);
 
               if (msgs == null) {
-                Logger.Debug("Error getting response from Heartbeat");
+                SlaveClientCom.Instance.ClientCom.LogMessage("Error getting response from Heartbeat");
                 OnExceptionOccured(new Exception("Error getting response from Heartbeat"));
               }
 
-              Logger.Debug("Heartbeat Response received: ");
-              msgs.ForEach(mc => Logger.Debug(mc.Message.ToString()));
+              SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Response received: ");
+              msgs.ForEach(mc => SlaveClientCom.Instance.ClientCom.LogMessage(mc.Message.ToString()));
               msgs.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc));
             }
@@ -112,5 +112,5 @@
         }
         catch (Exception e) {
-          Logger.Error("Heartbeat Thread failed badly: " + e.Message);
+          SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Thread failed badly: " + e.Message);
           OnExceptionOccured(e);
         }
@@ -118,5 +118,5 @@
       }
       waitHandle.Close();
-      Logger.Debug("Heartbeat thread stopped");
+      SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat thread stopped");
     }
 
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeuristicLab.Clients.Hive.Slave-3.4.csproj	(revision 5156)
@@ -64,5 +64,7 @@
   <ItemGroup>
     <Compile Include="ConfigManager.cs" />
+    <Compile Include="SlaveClientCom.cs" />
     <Compile Include="Core.cs" />
+    <Compile Include="DummyListener.cs" />
     <Compile Include="Executor.cs" />
     <Compile Include="HeartbeatManager.cs" />
@@ -82,4 +84,7 @@
       <DependentUpon>Settings.settings</DependentUpon>
     </Compile>
+    <Compile Include="ServiceContracts\ISlaveCommunication.cs" />
+    <Compile Include="ServiceContracts\ISlaveCommunicationCallbacks.cs" />
+    <Compile Include="SlaveCommunicationService.cs" />
     <Compile Include="SlaveStatusInfo.cs" />
     <Compile Include="StatusCommons.cs" />
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/PluginCache.cs	(revision 5156)
@@ -24,12 +24,11 @@
 using System.IO;
 using System.Linq;
+using System.Reflection;
 using System.Runtime.CompilerServices;
-using HeuristicLab.Services.Hive.Common.ServiceContracts;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
+using System.Threading;
+using HeuristicLab.Clients.Hive.Salve;
 using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.PluginInfrastructure.Manager;
-using System.Threading;
-using System.Reflection;
-using HeuristicLab.Clients.Hive.Salve;
+using HeuristicLab.Services.Hive.Common.DataTransfer;
 
 namespace HeuristicLab.Clients.Hive.Slave {
@@ -127,5 +126,5 @@
     internal void PreparePlugins(Job myJob, JobData jobData) {
       lock (locker) {
-        Logger.Debug("Fetching plugins for job");
+        SlaveClientCom.Instance.ClientCom.LogMessage("Fetching plugins for job");
 
         IEnumerable<Plugin> pluginDescriptions = WcfService.Instance.GetPlugins();
@@ -153,5 +152,5 @@
           }
           if (!found) {
-            Logger.Debug("Plugin NOT found " + info.Name + ", " + info.Version);
+            SlaveClientCom.Instance.ClientCom.LogMessage("Plugin NOT found " + info.Name + ", " + info.Version);
             missingPlugins.Add(info);
             missingGuids.Add(info.Id);
@@ -160,5 +159,5 @@
         }
 
-        Logger.Debug("First run - Update the plugins in the cache");
+        SlaveClientCom.Instance.ClientCom.LogMessage("First run - Update the plugins in the cache");
         localPlugins.AddRange(missingPlugins);
 
@@ -176,5 +175,5 @@
             if (pd != null) {
               foreach (IPluginFile ipf in pd.Files) {
-                Logger.Debug(string.Format("deleting {0}", Path.GetFileName(ipf.Name)));
+                SlaveClientCom.Instance.ClientCom.LogMessage(string.Format("deleting {0}", Path.GetFileName(ipf.Name)));
                 File.Delete(ipf.Name);
               }
@@ -195,5 +194,5 @@
     internal void DeletePluginsForJob(Guid id) {
       try {
-        Logger.Debug("unloading...");
+        SlaveClientCom.Instance.ClientCom.LogMessage("unloading...");
         int tries = 5;
         while (tries > 0) {
@@ -210,5 +209,5 @@
       }
       catch (Exception ex) {
-        Logger.Debug("failed while unloading " + id + " with exception " + ex);
+        SlaveClientCom.Instance.ClientCom.LogMessage("failed while unloading " + id + " with exception " + ex);
       }
     }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunication.cs	(revision 5156)
@@ -0,0 +1,46 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Salve;
+
+namespace HeuristicLab.Clients.Hive.Slave.ServiceContracts {
+
+  [ServiceContract(CallbackContract = typeof(ISlaveCommunicationCallbacks))]
+  public interface ISlaveCommunication {
+
+    [OperationContract]
+    bool Subscribe();
+
+    [OperationContract]
+    bool Unsubscribe();
+
+    [OperationContract]
+    void LogMessage(string message);
+
+    [OperationContract]
+    void StatusChanged(StatusCommons status);
+
+    [OperationContract]
+    void Shutdown();
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/ServiceContracts/ISlaveCommunicationCallbacks.cs	(revision 5156)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Salve;
+
+namespace HeuristicLab.Clients.Hive.Slave.ServiceContracts {
+  public interface ISlaveCommunicationCallbacks {
+
+    [OperationContract(IsOneWay = true)]
+    void OnStatusChanged(StatusCommons status);
+
+    [OperationContract(IsOneWay = true)]
+    void OnMessageLogged(string message);
+
+    [OperationContract(IsOneWay = true)]
+    void OnShutdown();
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveClientCom.cs	(revision 5156)
@@ -0,0 +1,66 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Slave;
+using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+
+namespace HeuristicLab.Clients.Hive.Salve {
+
+  /// <summary>
+  /// Singleton which encapsulates the SlaveCommunicationService
+  /// </summary>
+  public class SlaveClientCom {
+    private static SlaveClientCom instance;
+    private static DuplexChannelFactory<ISlaveCommunication> pipeFactory;
+    /// <summary>
+    /// Getter for the Instance of the SlaveClientCom
+    /// </summary>
+    /// <returns>the Instance of the SlaveClientCom class</returns>
+    public static SlaveClientCom Instance {
+      get {
+        if (instance == null) {
+          instance = new SlaveClientCom();
+        }
+        return instance;
+      }
+    }
+
+    public ISlaveCommunication ClientCom { get; set; }
+
+    private SlaveClientCom() {
+      setupClientCom();
+    }
+
+    private void setupClientCom() {
+      DummyListener dummy = new DummyListener();
+      pipeFactory = new DuplexChannelFactory<ISlaveCommunication>(
+        dummy, new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/HeuristicLabSlaveCom"));
+      ISlaveCommunication pipeProxy = pipeFactory.CreateChannel();
+      ClientCom = pipeProxy;
+    }
+
+    public static void Close() {
+      if (pipeFactory.State != CommunicationState.Closed)
+        pipeFactory.Close();
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs	(revision 5156)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/SlaveCommunicationService.cs	(revision 5156)
@@ -0,0 +1,86 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.ServiceModel;
+using HeuristicLab.Clients.Hive.Slave.ServiceContracts;
+
+namespace HeuristicLab.Clients.Hive.Slave {
+
+  public class SlaveCommunicationService : ISlaveCommunication {
+    private static List<ISlaveCommunicationCallbacks> subscribers = new List<ISlaveCommunicationCallbacks>();
+
+    public bool Subscribe() {
+      try {
+        ISlaveCommunicationCallbacks callback = OperationContext.Current.GetCallbackChannel<ISlaveCommunicationCallbacks>();
+        if (!subscribers.Contains(callback))
+          subscribers.Add(callback);
+        return true;
+      }
+      catch {
+        return false;
+      }
+    }
+
+    public bool Unsubscribe() {
+      try {
+        ISlaveCommunicationCallbacks callback = OperationContext.Current.GetCallbackChannel<ISlaveCommunicationCallbacks>();
+        if (subscribers.Contains(callback))
+          subscribers.Remove(callback);
+        return true;
+      }
+      catch {
+        return false;
+      }
+    }
+
+    public void LogMessage(string message) {
+      subscribers.ForEach(delegate(ISlaveCommunicationCallbacks callback) {
+        if (((ICommunicationObject)callback).State == CommunicationState.Opened) {
+          callback.OnMessageLogged(message);
+        } else {
+          subscribers.Remove(callback);
+        }
+      });
+    }
+
+    public void StatusChanged(Salve.StatusCommons status) {
+      subscribers.ForEach(delegate(ISlaveCommunicationCallbacks callback) {
+        if (((ICommunicationObject)callback).State == CommunicationState.Opened) {
+          callback.OnStatusChanged(status);
+        } else {
+          subscribers.Remove(callback);
+        }
+      });
+    }
+
+    public void Shutdown() {
+      subscribers.ForEach(delegate(ISlaveCommunicationCallbacks callback) {
+        if (((ICommunicationObject)callback).State == CommunicationState.Opened) {
+          callback.OnShutdown();
+        } else {
+          subscribers.Remove(callback);
+        }
+      });
+    }
+
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/WcfService.cs	(revision 5156)
@@ -22,10 +22,10 @@
 using System;
 using System.Collections.Generic;
+using HeuristicLab.Clients.Common;
+using HeuristicLab.Clients.Hive.Slave.Properties;
 using HeuristicLab.Common;
-using HeuristicLab.Clients.Common;
+using HeuristicLab.Services.Hive.Common;
+using HeuristicLab.Services.Hive.Common.DataTransfer;
 using HeuristicLab.Services.Hive.Common.ServiceContracts;
-using HeuristicLab.Services.Hive.Common.DataTransfer;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Clients.Hive.Slave.Properties;
 
 namespace HeuristicLab.Clients.Hive.Salve {
@@ -43,5 +43,4 @@
       get {
         if (instance == null) {
-          Logger.Debug("New WcfService Instance created");
           instance = new WcfService();
         }
@@ -54,9 +53,15 @@
 
     public event EventHandler Connected;
-    public void OnConnected() {
+    private void OnConnected() {
       var handler = Connected;
       if (handler != null) handler(this, EventArgs.Empty);
     }
 
+    public event EventHandler<EventArgs<Exception>> ExceptionOccured;
+    private void OnExceptionOccured(Exception e) {
+      var handler = ExceptionOccured;
+      if (handler != null) handler(this, new EventArgs<Exception>(e));
+    }
+
     /// <summary>
     /// Constructor
@@ -72,5 +77,4 @@
       using (Disposable<IHiveService> service = ServiceLocator.Instance.GetService()) {
         try {
-          Logger.Debug("Starting the Connection Process");
           ConnState = NetworkEnum.WcfConnState.Connected;
           ConnectedSince = DateTime.Now;
@@ -105,5 +109,4 @@
     private void HandleNetworkError(Exception e) {
       ConnState = NetworkEnum.WcfConnState.Failed;
-      Logger.Error("Network exception occurred: " + e);
       OnExceptionOccured(e);
     }
@@ -247,11 +250,4 @@
       }
     }
-
-    public event EventHandler<EventArgs<Exception>> ExceptionOccured;
-    private void OnExceptionOccured(Exception e) {
-      Logger.Error("Error: " + e.ToString());
-      var handler = ExceptionOccured;
-      if (handler != null) handler(this, new EventArgs<Exception>(e));
-    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app.config
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app.config	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/app.config	(revision 5156)
@@ -13,3 +13,15 @@
         </HeuristicLab.Clients.Hive.Slave.Properties.Settings>
     </userSettings>
+
+  <system.serviceModel>
+    <services>
+      <service name="HeuristicLab.Clients.Hive.Slave.SlaveCommunicationService">        
+        <endpoint address="net.pipe://localhost/HeuristicLabSlaveCom"
+                  binding="netNamedPipeBinding"
+                  contract="HeuristicLab.Clients.Hive.Slave.ServiceContracts.ISlaveCommunication"                  
+                   />
+      </service>
+    </services>
+  </system.serviceModel>
+
 </configuration>
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/IServiceLocator.cs	(revision 5156)
@@ -1,9 +1,25 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Clients.Common;
 using HeuristicLab.Services.Hive.Common.ServiceContracts;
-using HeuristicLab.Services.Hive.Common;
-using HeuristicLab.Clients.Common;
 
 namespace HeuristicLab.Clients.Hive {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/PersistenceUtil.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/PersistenceUtil.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/PersistenceUtil.cs	(revision 5156)
@@ -1,6 +1,23 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
 using System.IO;
 using HeuristicLab.Persistence.Default.Xml;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Hive 3.4.sln
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Hive 3.4.sln	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Hive 3.4.sln	(revision 5156)
@@ -55,4 +55,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Hive.Tests-3.4", "HeuristicLab.Services.Hive.Tests\HeuristicLab.Services.Hive.Tests-3.4.csproj", "{17187EAC-5D8C-4B11-9CEA-D88F71B59658}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4", "HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4\HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.4.csproj", "{464D70B8-2D91-485C-B622-22E4A4891C68}"
 EndProject
 Global
@@ -179,4 +181,15 @@
 		{17187EAC-5D8C-4B11-9CEA-D88F71B59658}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{17187EAC-5D8C-4B11-9CEA-D88F71B59658}.Release|x86.ActiveCfg = Release|Any CPU
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|x86.ActiveCfg = Debug|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Debug|x86.Build.0 = Debug|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Release|Any CPU.ActiveCfg = Release|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Release|Mixed Platforms.Build.0 = Release|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Release|x86.ActiveCfg = Release|x86
+		{464D70B8-2D91-485C-B622-22E4A4891C68}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs	(revision 5156)
@@ -1,12 +1,32 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Linq.Expressions;
 
 namespace HeuristicLab.Services.Hive.DataAccess {
-  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
   using HeuristicLab.Services.Hive.Common.DataTransfer;
   using HeuristicLab.Services.Hive.DataAccess.Properties;
+  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
 
   public class HiveDao : IHiveDao {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockAuthorizationManager.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockAuthorizationManager.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockAuthorizationManager.cs	(revision 5156)
@@ -1,6 +1,24 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 
 namespace HeuristicLab.Services.Hive.Tests.Mocks {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockLifecycleManager.cs	(revision 5156)
@@ -1,8 +1,27 @@
-﻿using System;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.Services.Hive.Common;
 using HeuristicLab.Services.Hive.Common.DataTransfer;
-using HeuristicLab.Services.Hive.Common;
 
 namespace HeuristicLab.Services.Hive.Tests.Mocks {
@@ -10,9 +29,9 @@
 
     public void Start() {
-      
+
     }
 
     public void Stop() {
-      
+
     }
 
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/Mocks/MockServiceLocator.cs	(revision 5156)
@@ -1,8 +1,25 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Services.Hive.DataAccess;
 using HeuristicLab.Services.Hive.Tests.Mocks;
-using HeuristicLab.Services.Hive.DataAccess;
 
 namespace HeuristicLab.Services.Hive.Tests {
@@ -24,6 +41,6 @@
     private ILifecycleManager lifecycleManager;
     public ILifecycleManager LifecycleManager {
-      get { 
-        return defaultServiceLocator.LifecycleManager; 
+      get {
+        return defaultServiceLocator.LifecycleManager;
       }
     }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/PluginLoader.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/PluginLoader.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/PluginLoader.cs	(revision 5156)
@@ -1,3 +1,23 @@
-﻿
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
 using System;
 using System.Collections.Generic;
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs	(revision 5155)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Tests/ServiceTests.cs	(revision 5156)
@@ -1,18 +1,37 @@
-﻿using System;
-using System.Text;
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
+using HeuristicLab.Clients.Hive;
+using HeuristicLab.Clients.Hive.Slave.Tests;
 using HeuristicLab.Services.Hive.Common.DataTransfer;
 using HeuristicLab.Services.Hive.Common.ServiceContracts;
-using HeuristicLab.Clients.Hive.Slave.Tests;
-using HeuristicLab.Clients.Hive;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 namespace HeuristicLab.Services.Hive.Tests {
-  using DA = HeuristicLab.Services.Hive.DataAccess;
-  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
-  using HeuristicLab.Services.Hive.Common;
   using System.Threading;
   using HeuristicLab.Hive;
+  using HeuristicLab.Services.Hive.Common;
+  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
 
   [TestClass]
