Index: trunk/sources/HeuristicLab.Hive.Client.Common/JobBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Common/JobBase.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.Common/JobBase.cs	(revision 770)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#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;
@@ -8,5 +29,5 @@
 
 namespace HeuristicLab.Hive.Client.Common {
-
+  [Serializable]
   abstract public class JobBase {
 
Index: trunk/sources/HeuristicLab.Hive.Client.Common/MessageContainer.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Common/MessageContainer.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.Common/MessageContainer.cs	(revision 770)
@@ -30,4 +30,5 @@
   /// the actual message itself and the JobId, refered by the message
   /// </summary>
+  [Serializable]
   public class MessageContainer {
 
Index: trunk/sources/HeuristicLab.Hive.Client.Common/TestJob.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Common/TestJob.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.Common/TestJob.cs	(revision 770)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#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;
@@ -5,4 +26,5 @@
 
 namespace HeuristicLab.Hive.Client.Common {
+  [Serializable]
   public class TestJob: JobBase {
     public override void Run() {
Index: trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/ConfigurationManager.cs	(revision 770)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#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;
Index: trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.Core/Core.cs	(revision 770)
@@ -27,4 +27,9 @@
 using HeuristicLab.Hive.Client.Common;
 using System.Threading;
+using System.Reflection;
+using System.Diagnostics;
+using System.Security.Permissions;
+using System.Security.Policy;
+using System.Security;
 
 
@@ -33,5 +38,24 @@
 
     Dictionary<long, Executor> engines = new Dictionary<long, Executor>();
-    
+    Dictionary<long, AppDomain> appDomains = new Dictionary<long, AppDomain>();
+
+    public static StrongName CreateStrongName(Assembly assembly) {
+      if (assembly == null)
+        throw new ArgumentNullException("assembly");
+
+      AssemblyName assemblyName = assembly.GetName();
+      Debug.Assert(assemblyName != null, "Could not get assembly name");
+
+      // get the public key blob
+      byte[] publicKey = assemblyName.GetPublicKey();
+      if (publicKey == null || publicKey.Length == 0)
+        throw new InvalidOperationException("Assembly is not strongly named");
+
+      StrongNamePublicKeyBlob keyBlob = new StrongNamePublicKeyBlob(publicKey);
+
+      // and create the StrongName
+      return new StrongName(keyBlob, assemblyName.Name, assemblyName.Version);
+    }
+
     public void Start() {
       Logging.getInstance().Info(this.ToString(), "Info Message");
@@ -45,7 +69,13 @@
       MessageQueue queue = MessageQueue.GetInstance();
       
-      JobBase job = new TestJob();
+      TestJob job = new TestJob();
+
+      AppDomain appDomain = CreateNewAppDomain(false);
       
-      ExecutionEngine.Executor engine = new ExecutionEngine.Executor();
+      //This is a HACK. remove static directory ASAP
+      //Executor engine = (Executor)appDomain.CreateInstanceFromAndUnwrap(@"C:\Program Files\HeuristicLab 3.0\plugins\HeuristicLab.Hive.Client.ExecutionEngine-3.2.dll", "HeuristicLab.Hive.Client.ExecutionEngine.Executor");
+      
+      Executor engine = (Executor)appDomain.CreateInstanceAndUnwrap(typeof(Executor).Assembly.GetName().Name, typeof(Executor).FullName);
+      //ExecutionEngine.Executor engine = new ExecutionEngine.Executor();
       engine.Job = job;
       engine.JobId = 1L;
@@ -65,4 +95,24 @@
     }
 
+    Assembly appDomain_TypeResolve(object sender, ResolveEventArgs args) {
+      throw new NotImplementedException();
+    }
+
+    private AppDomain CreateNewAppDomain(bool sandboxed) {
+      PermissionSet pset;
+      if (sandboxed) {
+        pset = new PermissionSet(PermissionState.None);
+        pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
+      } else {
+        pset = new PermissionSet(PermissionState.Unrestricted);
+      }
+      AppDomainSetup setup = new AppDomainSetup();
+      setup.ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
+      //Temp Fix!
+      setup.PrivateBinPath = "plugins";
+      return System.AppDomain.CreateDomain("appD", AppDomain.CurrentDomain.Evidence, setup, pset, CreateStrongName(Assembly.GetExecutingAssembly())); 
+
+    }
+
     private void DetermineAction(MessageContainer container) {
       if(container.Message == MessageContainer.MessageType.AbortJob)
Index: trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/ExecutionEnginePlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/ExecutionEnginePlugin.cs	(revision 769)
+++ trunk/sources/HeuristicLab.Hive.Client.ExecutionEngine/ExecutionEnginePlugin.cs	(revision 770)
@@ -1,3 +1,24 @@
-﻿using System;
+﻿#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;
