Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Convert.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Convert.cs	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Convert.cs	(revision 5106)
@@ -42,5 +42,4 @@
         ParentJobId = source.ParentJobId,
         Priority = source.Priority,
-        ProjectId = source.ProjectId,
         SlaveId = source.SlaveId,
         JobState = source.JobState,
@@ -66,9 +65,8 @@
         target.ParentJobId = source.ParentJobId;
         target.Priority = source.Priority;
-        target.ProjectId = source.ProjectId;
         target.SlaveId = source.SlaveId;
         target.JobState = source.JobState;
         target.UserId = source.UserId;
-//        target.RequiredPlugins = db.Plugins.Select(x => source.PluginsNeededIds.Contains(x.PluginId)); - this is difficult
+        //        target.RequiredPlugins = db.Plugins.Select(x => source.PluginsNeededIds.Contains(x.PluginId)); - this is difficult
       }
     }
@@ -78,5 +76,5 @@
     public static DT.JobData ToDto(JobData source) {
       if (source == null) return null;
-      return new DT.JobData { JobId = source.JobId, Data = source.Data.ToArray() };
+      return new DT.JobData { JobId = source.JobId, Data = source.Data.ToArray(), LastUpdate = source.LastUpdate };
     }
     public static JobData ToEntity(DT.JobData source) {
@@ -87,5 +85,5 @@
     public static void ToEntity(DT.JobData source, JobData target) {
       if ((source != null) && (target != null)) {
-        target.JobId = source.JobId; target.Data = new Binary(source.Data);
+        target.JobId = source.JobId; target.Data = new Binary(source.Data); target.LastUpdate = source.LastUpdate;
       }
     }
@@ -95,5 +93,5 @@
     public static DT.HiveExperiment ToDto(HiveExperiment source) {
       if (source == null) return null;
-      return new DT.HiveExperiment { Id = source.HiveExperimentId, Description = source.Description, Name = source.Name, RootJobId = source.RootJobId, UserId = source.UserId };
+      return new DT.HiveExperiment { Id = source.HiveExperimentId, Description = source.Description, Name = source.Name, RootJobId = source.RootJobId, UserId = source.UserId, DateCreated = source.DateCreated };
     }
     public static HiveExperiment ToEntity(DT.HiveExperiment source) {
@@ -104,5 +102,5 @@
     public static void ToEntity(DT.HiveExperiment source, HiveExperiment target) {
       if ((source != null) && (target != null)) {
-        target.HiveExperimentId = source.Id; target.Description = source.Description; target.Name = source.Name; target.RootJobId = source.RootJobId; target.UserId = source.UserId;
+        target.HiveExperimentId = source.Id; target.Description = source.Description; target.Name = source.Name; target.RootJobId = source.RootJobId; target.UserId = source.UserId; target.DateCreated = source.DateCreated;
       }
     }
@@ -146,5 +144,5 @@
     public static DT.Slave ToDto(Slave source) {
       if (source == null) return null;
-      return new DT.Slave { Id = source.ResourceId, CalendarSyncState = source.CalendarSyncState, Cores = source.Cores, CpuSpeed = source.CpuSpeed, FreeCores = source.FreeCores, FreeMemory = source.FreeMemory, IsAllowedToCalculate = source.IsAllowedToCalculate, Memory = source.Memory, Name = source.Name, SlaveConfigId = source.SlaveConfigId, SlaveState = source.SlaveState };
+      return new DT.Slave { Id = source.ResourceId, ParentResourceId = source.ParentResourceId, Cores = source.Cores, CpuSpeed = source.CpuSpeed, FreeCores = source.FreeCores, FreeMemory = source.FreeMemory, IsAllowedToCalculate = source.IsAllowedToCalculate, Memory = source.Memory, Name = source.Name, SlaveState = source.SlaveState };
     }
     public static Slave ToEntity(DT.Slave source) {
@@ -155,5 +153,5 @@
     public static void ToEntity(DT.Slave source, Slave target) {
       if ((source != null) && (target != null)) {
-        target.ResourceId = source.Id; target.CalendarSyncState = source.CalendarSyncState; target.Cores = source.Cores; target.CpuSpeed = source.CpuSpeed; target.FreeCores = source.FreeCores; target.FreeMemory = source.FreeMemory; target.IsAllowedToCalculate = source.IsAllowedToCalculate; target.Memory = source.Memory; target.Name = source.Name; target.SlaveConfigId = source.SlaveConfigId; target.SlaveState = source.SlaveState;
+        target.ResourceId = source.Id; target.ParentResourceId = source.ParentResourceId; target.Cores = source.Cores; target.CpuSpeed = source.CpuSpeed; target.FreeCores = source.FreeCores; target.FreeMemory = source.FreeMemory; target.IsAllowedToCalculate = source.IsAllowedToCalculate; target.Memory = source.Memory; target.Name = source.Name; target.SlaveState = source.SlaveState;
       }
     }
@@ -163,5 +161,5 @@
     public static DT.SlaveGroup ToDto(SlaveGroup source) {
       if (source == null) return null;
-      return new DT.SlaveGroup { Id = source.ResourceId, Name = source.Name, ChildResourcesIds = source.SlaveGroup_Resources_Children.Select(x => x.ResourceId).ToList(), ParentResourcesIds = source.SlaveGroup_Resources_Parents.Select(x => x.ResourceId).ToList() };
+      return new DT.SlaveGroup { Id = source.ResourceId, Name = source.Name, ParentResourceId = source.ParentResourceId };
     }
     public static SlaveGroup ToEntity(DT.SlaveGroup source) {
@@ -172,8 +170,5 @@
     public static void ToEntity(DT.SlaveGroup source, SlaveGroup target) {
       if ((source != null) && (target != null)) {
-        target.ResourceId = source.Id;
-        target.Name = source.Name;
-        //target.SlaveGroup_Resources_Children = // TODO: see how working with groups will work, then decide how to handle enumerations in here
-        //target.SlaveGroup_Resources_Parents = 
+        target.ResourceId = source.Id; target.Name = source.Name; target.ParentResourceId = source.ParentResourceId;
       }
     }
@@ -183,5 +178,5 @@
     public static DT.Resource ToDto(Resource source) {
       if (source == null) return null;
-      return new DT.Resource { Id = source.ResourceId, Name = source.Name };
+      return new DT.Resource { Id = source.ResourceId, Name = source.Name, ParentResourceId = source.ParentResourceId };
     }
     public static Resource ToEntity(DT.Resource source) {
@@ -192,5 +187,5 @@
     public static void ToEntity(DT.Resource source, Resource target) {
       if ((source != null) && (target != null)) {
-        target.ResourceId = source.Id; target.Name = source.Name;
+        target.ResourceId = source.Id; target.Name = source.Name; target.ParentResourceId = source.ParentResourceId;
       }
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HeuristicLab.Services.Hive.DataAccess-3.4.csproj
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HeuristicLab.Services.Hive.DataAccess-3.4.csproj	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HeuristicLab.Services.Hive.DataAccess-3.4.csproj	(revision 5106)
@@ -61,4 +61,5 @@
     <Reference Include="System.Data.Linq" />
     <Reference Include="System.Transactions" />
+    <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
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 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs	(revision 5106)
@@ -53,5 +53,5 @@
         var entity = db.Jobs.FirstOrDefault(x => x.JobId == id);
         if (entity != null) db.Jobs.DeleteOnSubmit(entity);
-        db.SubmitChanges();
+        db.SubmitChanges(); // JobData and child jobs are deleted by db-trigger
       }
     }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml	(revision 5106)
@@ -9,30 +9,4 @@
     </Type>
   </Table>
-  <Table Name="dbo.UptimeStatistics" Member="UptimeStatistics">
-    <Type Name="UptimeStatistic">
-      <Column Name="UptimeStatisticsId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="Login" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
-      <Column Name="Logout" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
-      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
-      <Association Name="Slave_UptimeStatistic" Member="Slave" ThisKey="ResourceId" OtherKey="ResourceId" Type="Slave" IsForeignKey="true" DeleteRule="SET NULL" />
-    </Type>
-  </Table>
-  <Table Name="dbo.SlaveConfig" Member="SlaveConfigs">
-    <Type Name="SlaveConfig">
-      <Column Name="SlaveConfigId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="UpDownTimeCalendar" Type="System.Xml.Linq.XElement" DbType="Xml" CanBeNull="false" UpdateCheck="Never" />
-      <Column Name="HeartBeatIntervall" Type="System.Int32" DbType="Int" CanBeNull="true" />
-      <Association Name="SlaveConfig_Slave" Member="Slaves" ThisKey="SlaveConfigId" OtherKey="SlaveConfigId" Type="Slave" />
-    </Type>
-  </Table>
-  <Table Name="dbo.SlaveGroup_Resource" Member="SlaveGroup_Resources">
-    <Type Name="SlaveGroup_Resource">
-      <Column Name="SlaveGroup_RessourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="SlaveGroupId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
-      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
-      <Association Name="SlaveGroup_SlaveGroup_Resource" Member="SlaveGroup" ThisKey="SlaveGroupId" OtherKey="ResourceId" Type="SlaveGroup" IsForeignKey="true" />
-      <Association Name="Resource_SlaveGroup_Resource" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" DeleteRule="CASCADE" />
-    </Type>
-  </Table>
   <Table Name="dbo.Plugin" Member="Plugins">
     <Type Name="Plugin">
@@ -42,11 +16,4 @@
       <Association Name="Plugin_RequiredPlugin" Member="RequiredPlugins" ThisKey="PluginId" OtherKey="PluginId" Type="RequiredPlugin" />
       <Association Name="Plugin_PluginData" Member="PluginData" ThisKey="PluginId" OtherKey="PluginId" Type="PluginData" Cardinality="One" />
-    </Type>
-  </Table>
-  <Table Name="dbo.Project" Member="Projects">
-    <Type Name="Project">
-      <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
-      <Column Name="Name" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
-      <Association Name="Project_Job" Member="Jobs" ThisKey="ProjectId" OtherKey="ProjectId" Type="Job" />
     </Type>
   </Table>
@@ -62,10 +29,12 @@
   <Table Name="dbo.Resource" Member="Resources">
     <Type Name="Resource" InheritanceCode="RESOURCE">
-      <Column Name="ResourceId" AutoSync="OnInsert" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
+      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
       <Column Name="Name" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
       <Column Name="ResourceType" Type="System.String" CanBeNull="false" IsDiscriminator="true" />
+      <Column Name="ParentResourceId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
       <Association Name="Resource_AssignedResource" Member="AssignedResources" ThisKey="ResourceId" OtherKey="ResourceId" Type="AssignedResource" />
-      <Association Name="Resource_SlaveGroup_Resource" Member="SlaveGroup_Resources_Parents" ThisKey="ResourceId" OtherKey="ResourceId" Type="SlaveGroup_Resource" />
       <Association Name="Resource_UptimeCalendar" Member="UptimeCalendars" ThisKey="ResourceId" OtherKey="ResourceId" Type="UptimeCalendar" />
+      <Association Name="Resource_Resource" Member="ChildResources" ThisKey="ResourceId" OtherKey="ParentResourceId" Type="Resource" />
+      <Association Name="Resource_Resource" Member="ParentResource" ThisKey="ParentResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
       <Type Name="Slave" InheritanceCode="Slave" IsInheritanceDefault="true">
         <Column Name="CpuSpeed" Storage="_CPUSpeed" Type="System.Int32" DbType="Int" CanBeNull="true" />
@@ -73,18 +42,11 @@
         <Column Name="Login" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
         <Column Name="SlaveState" Storage="_Status" Type="global::HeuristicLab.Services.Hive.Common.DataTransfer.SlaveState" DbType="VarChar(15)" CanBeNull="true" />
-        <Column Name="CalendarSyncState" Storage="_CalendarSyncStatus" Type="global::HeuristicLab.Services.Hive.Common.DataTransfer.CalendarState" DbType="VarChar(MAX)" CanBeNull="true" />
-        <Column Name="UseCalendarFromResourceId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
-        <Column Name="SlaveConfigId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
         <Column Name="Cores" Storage="_NumberOfCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
         <Column Name="FreeCores" Storage="_NumberOfFreeCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
         <Column Name="FreeMemory" Type="System.Int32" DbType="Int" CanBeNull="true" />
         <Column Name="IsAllowedToCalculate" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
-        <Association Name="Slave_UptimeStatistic" Member="UptimeStatistics" ThisKey="ResourceId" OtherKey="ResourceId" Type="UptimeStatistic" />
         <Association Name="Slave_Job" Member="Jobs" ThisKey="ResourceId" OtherKey="SlaveId" Type="Job" />
-        <Association Name="SlaveConfig_Slave" Member="SlaveConfig" ThisKey="SlaveConfigId" OtherKey="SlaveConfigId" Type="SlaveConfig" IsForeignKey="true" DeleteRule="SET NULL" />
       </Type>
-      <Type Name="SlaveGroup" InheritanceCode="GROUP">
-        <Association Name="SlaveGroup_SlaveGroup_Resource" Member="SlaveGroup_Resources_Children" ThisKey="ResourceId" OtherKey="SlaveGroupId" Type="SlaveGroup_Resource" />
-      </Type>
+      <Type Name="SlaveGroup" InheritanceCode="GROUP" />
     </Type>
   </Table>
@@ -97,5 +59,5 @@
       <Column Name="ExecutionTime" Type="System.TimeSpan" DbType="Time" CanBeNull="true" />
       <Column Name="Exception" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
-      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
+      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
       <Column Name="DateCalculated" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
       <Column Name="DateFinished" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
@@ -107,8 +69,7 @@
       <Association Name="Job_AssignedResource" Member="AssignedResources" ThisKey="JobId" OtherKey="JobId" Type="AssignedResource" />
       <Association Name="Job_RequiredPlugin" Member="RequiredPlugins" ThisKey="JobId" OtherKey="JobId" Type="RequiredPlugin" />
-      <Association Name="Job_Job" Member="Jobs" ThisKey="JobId" OtherKey="ParentJobId" Type="Job" />
+      <Association Name="Job_Job" Member="ChildJobs" Storage="_Jobs" ThisKey="JobId" OtherKey="ParentJobId" Type="Job" />
       <Association Name="Job_JobData" Member="JobData" ThisKey="JobId" OtherKey="JobId" Type="JobData" Cardinality="One" />
-      <Association Name="Job_Job" Member="Job1" ThisKey="ParentJobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
-      <Association Name="Project_Job" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" DeleteRule="SET NULL" />
+      <Association Name="Job_Job" Member="ParentJob" Storage="_Job1" ThisKey="ParentJobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
       <Association Name="Slave_Job" Member="Slave" ThisKey="SlaveId" OtherKey="ResourceId" Type="Slave" IsForeignKey="true" DeleteRule="SET NULL" />
     </Type>
@@ -133,5 +94,6 @@
       <Column Name="ResourceIds" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
       <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
-      <Column Name="RootJobId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
+      <Column Name="RootJobId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
+      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
       <Association Name="Job_HiveExperiment" Member="RootJob" Storage="_Job" ThisKey="RootJobId" OtherKey="JobId" Type="Job" IsForeignKey="true" DeleteRule="CASCADE" />
     </Type>
@@ -141,4 +103,5 @@
       <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
       <Column Name="Data" Type="System.Data.Linq.Binary" DbType="VarBinary(MAX)" CanBeNull="false" UpdateCheck="Never" />
+      <Column Name="LastUpdate" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
       <Association Name="Job_JobData" Member="Job" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
     </Type>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml.layout
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml.layout	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.dbml.layout	(revision 5106)
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
-<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 17.25, 12.25" name="HiveDataContext">
+<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 16.25, 12.25" name="HiveDataContext">
   <DataContextMoniker Name="/HiveDataContext" />
   <nestedChildShapes>
@@ -9,32 +9,8 @@
       </nestedChildShapes>
     </classShape>
-    <classShape Id="3176614f-3038-41e5-8e75-cdf99373cb3d" absoluteBounds="4.5, 2.125, 2, 1.5785953776041666">
-      <DataClassMoniker Name="/HiveDataContext/UptimeStatistic" />
-      <nestedChildShapes>
-        <elementListCompartment Id="35235ffe-b21e-49da-b58a-27423444612a" absoluteBounds="4.5150000000000006, 2.5850000000000009, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="5d9c7dad-8113-49c9-bdfa-c64543554a7b" absoluteBounds="7, 0.75, 2, 1.3862939453125023">
-      <DataClassMoniker Name="/HiveDataContext/SlaveConfig" />
-      <nestedChildShapes>
-        <elementListCompartment Id="c2e15bc8-44cb-42af-b195-b9a30f61af28" absoluteBounds="7.0150000000000006, 1.2100000000000009, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="7edeab13-5aa7-4b63-8c5e-cae056298001" absoluteBounds="15, 2.875, 2, 1.3862939453125023">
-      <DataClassMoniker Name="/HiveDataContext/SlaveGroup_Resource" />
-      <nestedChildShapes>
-        <elementListCompartment Id="b84f48de-4352-4df2-a7da-ff7cbc1fe702" absoluteBounds="15.015, 3.3350000000000009, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
     <classShape Id="7d998e56-4fba-41ca-a1a8-1dcdb9068edf" absoluteBounds="9, 10.625, 2, 1.3862939453125005">
       <DataClassMoniker Name="/HiveDataContext/Plugin" />
       <nestedChildShapes>
         <elementListCompartment Id="ec4ba325-6dff-4418-baad-59af81ae2024" absoluteBounds="9.015, 11.085, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
-      </nestedChildShapes>
-    </classShape>
-    <classShape Id="85f04409-b6e0-4e2f-a140-7191436a806f" absoluteBounds="5, 8.25, 2, 1.1939925130208309">
-      <DataClassMoniker Name="/HiveDataContext/Project" />
-      <nestedChildShapes>
-        <elementListCompartment Id="59e11457-6078-47f4-8ee6-eb2052868699" absoluteBounds="5.0150000000000006, 8.71, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -45,8 +21,8 @@
       </nestedChildShapes>
     </classShape>
-    <classShape Id="706a4581-6daf-4e71-ae2a-87d50b27a051" absoluteBounds="11.75, 0.75, 2, 1.3862939453125005">
+    <classShape Id="706a4581-6daf-4e71-ae2a-87d50b27a051" absoluteBounds="11.75, 0.75, 2, 1.5785953776041666">
       <DataClassMoniker Name="/HiveDataContext/Resource" />
       <nestedChildShapes>
-        <elementListCompartment Id="8c24f5bf-2164-4d0f-832e-1730eb0066df" absoluteBounds="11.765, 1.21, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="8c24f5bf-2164-4d0f-832e-1730eb0066df" absoluteBounds="11.765, 1.21, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -63,14 +39,14 @@
       </nestedChildShapes>
     </classShape>
-    <classShape Id="e6f840cc-2968-4be1-b234-eef624ccacbb" absoluteBounds="4.875, 6, 2, 1.9631982421875005">
+    <classShape Id="e6f840cc-2968-4be1-b234-eef624ccacbb" absoluteBounds="4.875, 6, 2, 2.1554996744791666">
       <DataClassMoniker Name="/HiveDataContext/HiveExperiment" />
       <nestedChildShapes>
-        <elementListCompartment Id="0c65d4e1-256a-4a91-9a57-392f25e4de7f" absoluteBounds="4.8900000000000006, 6.4600000000000009, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="0c65d4e1-256a-4a91-9a57-392f25e4de7f" absoluteBounds="4.8900000000000006, 6.4600000000000009, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
-    <classShape Id="26f4edfa-91dd-4941-a058-359f89e567a8" absoluteBounds="9.375, 0.75, 2, 2.9247054036458326">
+    <classShape Id="26f4edfa-91dd-4941-a058-359f89e567a8" absoluteBounds="9.375, 0.75, 2, 2.3478011067708335">
       <DataClassMoniker Name="/HiveDataContext/Slave" />
       <nestedChildShapes>
-        <elementListCompartment Id="1e61f36b-08dc-4df7-8594-c9dcd95c0791" absoluteBounds="9.39, 1.21, 1.9700000000000002, 2.364705403645833" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="1e61f36b-08dc-4df7-8594-c9dcd95c0791" absoluteBounds="9.39, 1.21, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -81,5 +57,5 @@
       </nestedChildShapes>
     </classShape>
-    <inheritanceConnector edgePoints="[(11.75 : 1.44314697265625); (11.375 : 1.44314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
+    <inheritanceConnector edgePoints="[(11.75 : 1.53929768880208); (11.375 : 1.53929768880208)]" fixedFrom="Algorithm" fixedTo="Algorithm" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
       <nodes>
         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
@@ -87,5 +63,5 @@
       </nodes>
     </inheritanceConnector>
-    <inheritanceConnector edgePoints="[(13.75 : 1.15469482421875); (14 : 1.15469482421875)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
+    <inheritanceConnector edgePoints="[(13.75 : 1.15469482421875); (14 : 1.15469482421875)]" fixedFrom="Algorithm" fixedTo="Algorithm" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
       <nodes>
         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
@@ -93,5 +69,5 @@
       </nodes>
     </inheritanceConnector>
-    <associationConnector edgePoints="[(13.25 : 2.1362939453125); (13.25 : 2.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(13.25 : 2.32859537760417); (13.25 : 2.875)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedResource" />
       <nodes>
@@ -107,25 +83,4 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(9.375 : 2.93674967447917); (6.5 : 2.93674967447917)]" fixedFrom="NotFixed" fixedTo="NotFixed">
-      <AssociationMoniker Name="/HiveDataContext/Slave/Slave_UptimeStatistic" />
-      <nodes>
-        <classShapeMoniker Id="26f4edfa-91dd-4941-a058-359f89e567a8" />
-        <classShapeMoniker Id="3176614f-3038-41e5-8e75-cdf99373cb3d" />
-      </nodes>
-    </associationConnector>
-    <associationConnector edgePoints="[(15.6910576194798 : 1.5593896484375); (15.6910576194798 : 2.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
-      <AssociationMoniker Name="/HiveDataContext/SlaveGroup/SlaveGroup_SlaveGroup_Resource" />
-      <nodes>
-        <classShapeMoniker Id="bbd91675-92f2-4a69-8429-0950008fc8a4" />
-        <classShapeMoniker Id="7edeab13-5aa7-4b63-8c5e-cae056298001" />
-      </nodes>
-    </associationConnector>
-    <associationConnector edgePoints="[(13.75 : 2.1362939453125); (14.125 : 2.5112939453125); (15.3497974555544 : 2.5112939453125); (15.3497974555544 : 2.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
-      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_SlaveGroup_Resource" />
-      <nodes>
-        <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
-        <classShapeMoniker Id="7edeab13-5aa7-4b63-8c5e-cae056298001" />
-      </nodes>
-    </associationConnector>
     <associationConnector edgePoints="[(10.25 : 7.87660970052083); (10.25 : 8.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Job/Job_RequiredPlugin" />
@@ -133,11 +88,4 @@
         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
         <classShapeMoniker Id="97b00810-fa30-457e-b484-b4e80b22f91b" />
-      </nodes>
-    </associationConnector>
-    <associationConnector edgePoints="[(9 : 1.44314697265625); (9.375 : 1.44314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
-      <AssociationMoniker Name="/HiveDataContext/SlaveConfig/SlaveConfig_Slave" />
-      <nodes>
-        <classShapeMoniker Id="5d9c7dad-8113-49c9-bdfa-c64543554a7b" />
-        <classShapeMoniker Id="26f4edfa-91dd-4941-a058-359f89e567a8" />
       </nodes>
     </associationConnector>
@@ -149,12 +97,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(7 : 8.25); (7.875 : 8.125); (7.875 : 8.05644744428109); (8.875 : 8.05644744428109); (8.875 : 8.25160970052083); (9.25 : 7.87660970052083)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
-      <AssociationMoniker Name="/HiveDataContext/Project/Project_Job" />
-      <nodes>
-        <classShapeMoniker Id="85f04409-b6e0-4e2f-a140-7191436a806f" />
-        <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
-      </nodes>
-    </associationConnector>
-    <associationConnector edgePoints="[(10.3125 : 3.67470540364583); (10.3125 : 4.375)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(10.3125 : 3.09780110677083); (10.3125 : 4.375)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Slave/Slave_Job" />
       <nodes>
@@ -163,5 +104,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(12.21875 : 2.1362939453125); (12.21875 : 4.625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(12.21875 : 2.32859537760417); (12.21875 : 4.625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_UptimeCalendar" />
       <nodes>
@@ -170,5 +111,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(9.25 : 6.71875); (6.875 : 6.71875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(9.25 : 6.93830485026042); (6.875 : 6.93830485026042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Job/Job_HiveExperiment" />
       <nodes>
@@ -177,8 +118,8 @@
       </nodes>
     </associationConnector>
-    <classShape Id="6bc13f26-f9a8-4597-b054-35be34190d12" absoluteBounds="6.875, 4.375, 2, 1.1939925130208327">
+    <classShape Id="6bc13f26-f9a8-4597-b054-35be34190d12" absoluteBounds="6.875, 4.375, 2, 1.3862939453124996">
       <DataClassMoniker Name="/HiveDataContext/JobData" />
       <nestedChildShapes>
-        <elementListCompartment Id="a068522c-7974-4679-b356-e33c941c465b" absoluteBounds="6.89, 4.835, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
+        <elementListCompartment Id="a068522c-7974-4679-b356-e33c941c465b" absoluteBounds="6.89, 4.835, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
       </nestedChildShapes>
     </classShape>
@@ -189,5 +130,5 @@
       </nestedChildShapes>
     </classShape>
-    <associationConnector edgePoints="[(11 : 11.2219962565104); (11.5 : 11.2219962565104)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+    <associationConnector edgePoints="[(11 : 11.2219962565104); (11.5 : 11.2219962565104)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Plugin/Plugin_PluginData" />
       <nodes>
@@ -196,5 +137,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(9.25 : 4.97199625651042); (8.875 : 4.97199625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+    <associationConnector edgePoints="[(9.25 : 5.06814697265625); (8.875 : 5.06814697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Job/Job_JobData" />
       <nodes>
@@ -203,5 +144,5 @@
       </nodes>
     </associationConnector>
-    <associationConnector edgePoints="[(10.125 : 10.625); (10.125 : 10.2612939453125)]" fixedFrom="Algorithm" fixedTo="Algorithm">
+    <associationConnector edgePoints="[(10.125 : 10.625); (10.125 : 10.2612939453125)]" fixedFrom="NotFixed" fixedTo="NotFixed">
       <AssociationMoniker Name="/HiveDataContext/Plugin/Plugin_RequiredPlugin" />
       <nodes>
@@ -210,4 +151,11 @@
       </nodes>
     </associationConnector>
+    <associationConnector edgePoints="[(12.4524234637921 : 0.75); (12.4524234637921 : 0.5); (13.0617468474559 : 0.5); (13.0617468474559 : 0.75)]" fixedFrom="NotFixed" fixedTo="NotFixed">
+      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_Resource" />
+      <nodes>
+        <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
+        <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
+      </nodes>
+    </associationConnector>
   </nestedChildShapes>
 </ordesignerObjectsDiagram>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.designer.cs	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDataContext.designer.cs	(revision 5106)
@@ -34,19 +34,7 @@
     partial void UpdateAssignedResource(AssignedResource instance);
     partial void DeleteAssignedResource(AssignedResource instance);
-    partial void InsertUptimeStatistic(UptimeStatistic instance);
-    partial void UpdateUptimeStatistic(UptimeStatistic instance);
-    partial void DeleteUptimeStatistic(UptimeStatistic instance);
-    partial void InsertSlaveConfig(SlaveConfig instance);
-    partial void UpdateSlaveConfig(SlaveConfig instance);
-    partial void DeleteSlaveConfig(SlaveConfig instance);
-    partial void InsertSlaveGroup_Resource(SlaveGroup_Resource instance);
-    partial void UpdateSlaveGroup_Resource(SlaveGroup_Resource instance);
-    partial void DeleteSlaveGroup_Resource(SlaveGroup_Resource instance);
     partial void InsertPlugin(Plugin instance);
     partial void UpdatePlugin(Plugin instance);
     partial void DeletePlugin(Plugin instance);
-    partial void InsertProject(Project instance);
-    partial void UpdateProject(Project instance);
-    partial void DeleteProject(Project instance);
     partial void InsertRequiredPlugin(RequiredPlugin instance);
     partial void UpdateRequiredPlugin(RequiredPlugin instance);
@@ -101,28 +89,4 @@
 		}
 		
-		public System.Data.Linq.Table<UptimeStatistic> UptimeStatistics
-		{
-			get
-			{
-				return this.GetTable<UptimeStatistic>();
-			}
-		}
-		
-		public System.Data.Linq.Table<SlaveConfig> SlaveConfigs
-		{
-			get
-			{
-				return this.GetTable<SlaveConfig>();
-			}
-		}
-		
-		public System.Data.Linq.Table<SlaveGroup_Resource> SlaveGroup_Resources
-		{
-			get
-			{
-				return this.GetTable<SlaveGroup_Resource>();
-			}
-		}
-		
 		public System.Data.Linq.Table<Plugin> Plugins
 		{
@@ -130,12 +94,4 @@
 			{
 				return this.GetTable<Plugin>();
-			}
-		}
-		
-		public System.Data.Linq.Table<Project> Projects
-		{
-			get
-			{
-				return this.GetTable<Project>();
 			}
 		}
@@ -390,509 +346,4 @@
 	}
 	
-	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.UptimeStatistics")]
-	public partial class UptimeStatistic : INotifyPropertyChanging, INotifyPropertyChanged
-	{
-		
-		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-		
-		private System.Guid _UptimeStatisticsId;
-		
-		private System.DateTime _Login;
-		
-		private System.DateTime _Logout;
-		
-		private System.Guid _ResourceId;
-		
-		private EntityRef<Slave> _Slave;
-		
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnUptimeStatisticsIdChanging(System.Guid value);
-    partial void OnUptimeStatisticsIdChanged();
-    partial void OnLoginChanging(System.DateTime value);
-    partial void OnLoginChanged();
-    partial void OnLogoutChanging(System.DateTime value);
-    partial void OnLogoutChanged();
-    partial void OnResourceIdChanging(System.Guid value);
-    partial void OnResourceIdChanged();
-    #endregion
-		
-		public UptimeStatistic()
-		{
-			this._Slave = default(EntityRef<Slave>);
-			OnCreated();
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UptimeStatisticsId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
-		public System.Guid UptimeStatisticsId
-		{
-			get
-			{
-				return this._UptimeStatisticsId;
-			}
-			set
-			{
-				if ((this._UptimeStatisticsId != value))
-				{
-					this.OnUptimeStatisticsIdChanging(value);
-					this.SendPropertyChanging();
-					this._UptimeStatisticsId = value;
-					this.SendPropertyChanged("UptimeStatisticsId");
-					this.OnUptimeStatisticsIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Login", DbType="DateTime")]
-		public System.DateTime Login
-		{
-			get
-			{
-				return this._Login;
-			}
-			set
-			{
-				if ((this._Login != value))
-				{
-					this.OnLoginChanging(value);
-					this.SendPropertyChanging();
-					this._Login = value;
-					this.SendPropertyChanged("Login");
-					this.OnLoginChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Logout", DbType="DateTime")]
-		public System.DateTime Logout
-		{
-			get
-			{
-				return this._Logout;
-			}
-			set
-			{
-				if ((this._Logout != value))
-				{
-					this.OnLogoutChanging(value);
-					this.SendPropertyChanging();
-					this._Logout = value;
-					this.SendPropertyChanged("Logout");
-					this.OnLogoutChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier")]
-		public System.Guid ResourceId
-		{
-			get
-			{
-				return this._ResourceId;
-			}
-			set
-			{
-				if ((this._ResourceId != value))
-				{
-					if (this._Slave.HasLoadedOrAssignedValue)
-					{
-						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-					}
-					this.OnResourceIdChanging(value);
-					this.SendPropertyChanging();
-					this._ResourceId = value;
-					this.SendPropertyChanged("ResourceId");
-					this.OnResourceIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Slave_UptimeStatistic", Storage="_Slave", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true, DeleteRule="SET NULL")]
-		public Slave Slave
-		{
-			get
-			{
-				return this._Slave.Entity;
-			}
-			set
-			{
-				Slave previousValue = this._Slave.Entity;
-				if (((previousValue != value) 
-							|| (this._Slave.HasLoadedOrAssignedValue == false)))
-				{
-					this.SendPropertyChanging();
-					if ((previousValue != null))
-					{
-						this._Slave.Entity = null;
-						previousValue.UptimeStatistics.Remove(this);
-					}
-					this._Slave.Entity = value;
-					if ((value != null))
-					{
-						value.UptimeStatistics.Add(this);
-						this._ResourceId = value.ResourceId;
-					}
-					else
-					{
-						this._ResourceId = default(System.Guid);
-					}
-					this.SendPropertyChanged("Slave");
-				}
-			}
-		}
-		
-		public event PropertyChangingEventHandler PropertyChanging;
-		
-		public event PropertyChangedEventHandler PropertyChanged;
-		
-		protected virtual void SendPropertyChanging()
-		{
-			if ((this.PropertyChanging != null))
-			{
-				this.PropertyChanging(this, emptyChangingEventArgs);
-			}
-		}
-		
-		protected virtual void SendPropertyChanged(String propertyName)
-		{
-			if ((this.PropertyChanged != null))
-			{
-				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-			}
-		}
-	}
-	
-	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.SlaveConfig")]
-	public partial class SlaveConfig : INotifyPropertyChanging, INotifyPropertyChanged
-	{
-		
-		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-		
-		private System.Guid _SlaveConfigId;
-		
-		private System.Xml.Linq.XElement _UpDownTimeCalendar;
-		
-		private System.Nullable<int> _HeartBeatIntervall;
-		
-		private EntitySet<Slave> _Slaves;
-		
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnSlaveConfigIdChanging(System.Guid value);
-    partial void OnSlaveConfigIdChanged();
-    partial void OnUpDownTimeCalendarChanging(System.Xml.Linq.XElement value);
-    partial void OnUpDownTimeCalendarChanged();
-    partial void OnHeartBeatIntervallChanging(System.Nullable<int> value);
-    partial void OnHeartBeatIntervallChanged();
-    #endregion
-		
-		public SlaveConfig()
-		{
-			this._Slaves = new EntitySet<Slave>(new Action<Slave>(this.attach_Slaves), new Action<Slave>(this.detach_Slaves));
-			OnCreated();
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveConfigId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
-		public System.Guid SlaveConfigId
-		{
-			get
-			{
-				return this._SlaveConfigId;
-			}
-			set
-			{
-				if ((this._SlaveConfigId != value))
-				{
-					this.OnSlaveConfigIdChanging(value);
-					this.SendPropertyChanging();
-					this._SlaveConfigId = value;
-					this.SendPropertyChanged("SlaveConfigId");
-					this.OnSlaveConfigIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpDownTimeCalendar", DbType="Xml", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
-		public System.Xml.Linq.XElement UpDownTimeCalendar
-		{
-			get
-			{
-				return this._UpDownTimeCalendar;
-			}
-			set
-			{
-				if ((this._UpDownTimeCalendar != value))
-				{
-					this.OnUpDownTimeCalendarChanging(value);
-					this.SendPropertyChanging();
-					this._UpDownTimeCalendar = value;
-					this.SendPropertyChanged("UpDownTimeCalendar");
-					this.OnUpDownTimeCalendarChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HeartBeatIntervall", DbType="Int")]
-		public System.Nullable<int> HeartBeatIntervall
-		{
-			get
-			{
-				return this._HeartBeatIntervall;
-			}
-			set
-			{
-				if ((this._HeartBeatIntervall != value))
-				{
-					this.OnHeartBeatIntervallChanging(value);
-					this.SendPropertyChanging();
-					this._HeartBeatIntervall = value;
-					this.SendPropertyChanged("HeartBeatIntervall");
-					this.OnHeartBeatIntervallChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="SlaveConfig_Slave", Storage="_Slaves", ThisKey="SlaveConfigId", OtherKey="SlaveConfigId")]
-		public EntitySet<Slave> Slaves
-		{
-			get
-			{
-				return this._Slaves;
-			}
-			set
-			{
-				this._Slaves.Assign(value);
-			}
-		}
-		
-		public event PropertyChangingEventHandler PropertyChanging;
-		
-		public event PropertyChangedEventHandler PropertyChanged;
-		
-		protected virtual void SendPropertyChanging()
-		{
-			if ((this.PropertyChanging != null))
-			{
-				this.PropertyChanging(this, emptyChangingEventArgs);
-			}
-		}
-		
-		protected virtual void SendPropertyChanged(String propertyName)
-		{
-			if ((this.PropertyChanged != null))
-			{
-				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-			}
-		}
-		
-		private void attach_Slaves(Slave entity)
-		{
-			this.SendPropertyChanging();
-			entity.SlaveConfig = this;
-		}
-		
-		private void detach_Slaves(Slave entity)
-		{
-			this.SendPropertyChanging();
-			entity.SlaveConfig = null;
-		}
-	}
-	
-	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.SlaveGroup_Resource")]
-	public partial class SlaveGroup_Resource : INotifyPropertyChanging, INotifyPropertyChanged
-	{
-		
-		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-		
-		private System.Guid _SlaveGroup_RessourceId;
-		
-		private System.Guid _SlaveGroupId;
-		
-		private System.Guid _ResourceId;
-		
-		private EntityRef<SlaveGroup> _SlaveGroup;
-		
-		private EntityRef<Resource> _Resource;
-		
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnSlaveGroup_RessourceIdChanging(System.Guid value);
-    partial void OnSlaveGroup_RessourceIdChanged();
-    partial void OnSlaveGroupIdChanging(System.Guid value);
-    partial void OnSlaveGroupIdChanged();
-    partial void OnResourceIdChanging(System.Guid value);
-    partial void OnResourceIdChanged();
-    #endregion
-		
-		public SlaveGroup_Resource()
-		{
-			this._SlaveGroup = default(EntityRef<SlaveGroup>);
-			this._Resource = default(EntityRef<Resource>);
-			OnCreated();
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveGroup_RessourceId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
-		public System.Guid SlaveGroup_RessourceId
-		{
-			get
-			{
-				return this._SlaveGroup_RessourceId;
-			}
-			set
-			{
-				if ((this._SlaveGroup_RessourceId != value))
-				{
-					this.OnSlaveGroup_RessourceIdChanging(value);
-					this.SendPropertyChanging();
-					this._SlaveGroup_RessourceId = value;
-					this.SendPropertyChanged("SlaveGroup_RessourceId");
-					this.OnSlaveGroup_RessourceIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveGroupId", DbType="UniqueIdentifier NOT NULL")]
-		public System.Guid SlaveGroupId
-		{
-			get
-			{
-				return this._SlaveGroupId;
-			}
-			set
-			{
-				if ((this._SlaveGroupId != value))
-				{
-					if (this._SlaveGroup.HasLoadedOrAssignedValue)
-					{
-						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-					}
-					this.OnSlaveGroupIdChanging(value);
-					this.SendPropertyChanging();
-					this._SlaveGroupId = value;
-					this.SendPropertyChanged("SlaveGroupId");
-					this.OnSlaveGroupIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier NOT NULL")]
-		public System.Guid ResourceId
-		{
-			get
-			{
-				return this._ResourceId;
-			}
-			set
-			{
-				if ((this._ResourceId != value))
-				{
-					if (this._Resource.HasLoadedOrAssignedValue)
-					{
-						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-					}
-					this.OnResourceIdChanging(value);
-					this.SendPropertyChanging();
-					this._ResourceId = value;
-					this.SendPropertyChanged("ResourceId");
-					this.OnResourceIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="SlaveGroup_SlaveGroup_Resource", Storage="_SlaveGroup", ThisKey="SlaveGroupId", OtherKey="ResourceId", IsForeignKey=true)]
-		public SlaveGroup SlaveGroup
-		{
-			get
-			{
-				return this._SlaveGroup.Entity;
-			}
-			set
-			{
-				SlaveGroup previousValue = this._SlaveGroup.Entity;
-				if (((previousValue != value) 
-							|| (this._SlaveGroup.HasLoadedOrAssignedValue == false)))
-				{
-					this.SendPropertyChanging();
-					if ((previousValue != null))
-					{
-						this._SlaveGroup.Entity = null;
-						previousValue.SlaveGroup_Resources_Children.Remove(this);
-					}
-					this._SlaveGroup.Entity = value;
-					if ((value != null))
-					{
-						value.SlaveGroup_Resources_Children.Add(this);
-						this._SlaveGroupId = value.ResourceId;
-					}
-					else
-					{
-						this._SlaveGroupId = default(System.Guid);
-					}
-					this.SendPropertyChanged("SlaveGroup");
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_SlaveGroup_Resource", Storage="_Resource", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true, DeleteRule="CASCADE")]
-		public Resource Resource
-		{
-			get
-			{
-				return this._Resource.Entity;
-			}
-			set
-			{
-				Resource previousValue = this._Resource.Entity;
-				if (((previousValue != value) 
-							|| (this._Resource.HasLoadedOrAssignedValue == false)))
-				{
-					this.SendPropertyChanging();
-					if ((previousValue != null))
-					{
-						this._Resource.Entity = null;
-						previousValue.SlaveGroup_Resources_Parents.Remove(this);
-					}
-					this._Resource.Entity = value;
-					if ((value != null))
-					{
-						value.SlaveGroup_Resources_Parents.Add(this);
-						this._ResourceId = value.ResourceId;
-					}
-					else
-					{
-						this._ResourceId = default(System.Guid);
-					}
-					this.SendPropertyChanged("Resource");
-				}
-			}
-		}
-		
-		public event PropertyChangingEventHandler PropertyChanging;
-		
-		public event PropertyChangedEventHandler PropertyChanged;
-		
-		protected virtual void SendPropertyChanging()
-		{
-			if ((this.PropertyChanging != null))
-			{
-				this.PropertyChanging(this, emptyChangingEventArgs);
-			}
-		}
-		
-		protected virtual void SendPropertyChanged(String propertyName)
-		{
-			if ((this.PropertyChanged != null))
-			{
-				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-			}
-		}
-	}
-	
 	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Plugin")]
 	public partial class Plugin : INotifyPropertyChanging, INotifyPropertyChanged
@@ -1033,118 +484,4 @@
 	}
 	
-	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Project")]
-	public partial class Project : INotifyPropertyChanging, INotifyPropertyChanged
-	{
-		
-		private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
-		
-		private System.Guid _ProjectId;
-		
-		private string _Name;
-		
-		private EntitySet<Job> _Jobs;
-		
-    #region Extensibility Method Definitions
-    partial void OnLoaded();
-    partial void OnValidate(System.Data.Linq.ChangeAction action);
-    partial void OnCreated();
-    partial void OnProjectIdChanging(System.Guid value);
-    partial void OnProjectIdChanged();
-    partial void OnNameChanging(string value);
-    partial void OnNameChanged();
-    #endregion
-		
-		public Project()
-		{
-			this._Jobs = new EntitySet<Job>(new Action<Job>(this.attach_Jobs), new Action<Job>(this.detach_Jobs));
-			OnCreated();
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
-		public System.Guid ProjectId
-		{
-			get
-			{
-				return this._ProjectId;
-			}
-			set
-			{
-				if ((this._ProjectId != value))
-				{
-					this.OnProjectIdChanging(value);
-					this.SendPropertyChanging();
-					this._ProjectId = value;
-					this.SendPropertyChanged("ProjectId");
-					this.OnProjectIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX)", CanBeNull=false)]
-		public string Name
-		{
-			get
-			{
-				return this._Name;
-			}
-			set
-			{
-				if ((this._Name != value))
-				{
-					this.OnNameChanging(value);
-					this.SendPropertyChanging();
-					this._Name = value;
-					this.SendPropertyChanged("Name");
-					this.OnNameChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Job", Storage="_Jobs", ThisKey="ProjectId", OtherKey="ProjectId")]
-		public EntitySet<Job> Jobs
-		{
-			get
-			{
-				return this._Jobs;
-			}
-			set
-			{
-				this._Jobs.Assign(value);
-			}
-		}
-		
-		public event PropertyChangingEventHandler PropertyChanging;
-		
-		public event PropertyChangedEventHandler PropertyChanged;
-		
-		protected virtual void SendPropertyChanging()
-		{
-			if ((this.PropertyChanging != null))
-			{
-				this.PropertyChanging(this, emptyChangingEventArgs);
-			}
-		}
-		
-		protected virtual void SendPropertyChanged(String propertyName)
-		{
-			if ((this.PropertyChanged != null))
-			{
-				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-			}
-		}
-		
-		private void attach_Jobs(Job entity)
-		{
-			this.SendPropertyChanging();
-			entity.Project = this;
-		}
-		
-		private void detach_Jobs(Job entity)
-		{
-			this.SendPropertyChanging();
-			entity.Project = null;
-		}
-	}
-	
 	[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.RequiredPlugins")]
 	public partial class RequiredPlugin : INotifyPropertyChanging, INotifyPropertyChanged
@@ -1354,9 +691,13 @@
 		private string _ResourceType;
 		
+		private System.Nullable<System.Guid> _ParentResourceId;
+		
 		private EntitySet<AssignedResource> _AssignedResources;
 		
-		private EntitySet<SlaveGroup_Resource> _SlaveGroup_Resources_Parents;
-		
 		private EntitySet<UptimeCalendar> _UptimeCalendars;
+		
+		private EntitySet<Resource> _ChildResources;
+		
+		private EntityRef<Resource> _ParentResource;
 		
     #region Extensibility Method Definitions
@@ -1370,4 +711,6 @@
     partial void OnResourceTypeChanging(string value);
     partial void OnResourceTypeChanged();
+    partial void OnParentResourceIdChanging(System.Nullable<System.Guid> value);
+    partial void OnParentResourceIdChanged();
     #endregion
 		
@@ -1375,10 +718,11 @@
 		{
 			this._AssignedResources = new EntitySet<AssignedResource>(new Action<AssignedResource>(this.attach_AssignedResources), new Action<AssignedResource>(this.detach_AssignedResources));
-			this._SlaveGroup_Resources_Parents = new EntitySet<SlaveGroup_Resource>(new Action<SlaveGroup_Resource>(this.attach_SlaveGroup_Resources_Parents), new Action<SlaveGroup_Resource>(this.detach_SlaveGroup_Resources_Parents));
 			this._UptimeCalendars = new EntitySet<UptimeCalendar>(new Action<UptimeCalendar>(this.attach_UptimeCalendars), new Action<UptimeCalendar>(this.detach_UptimeCalendars));
+			this._ChildResources = new EntitySet<Resource>(new Action<Resource>(this.attach_ChildResources), new Action<Resource>(this.detach_ChildResources));
+			this._ParentResource = default(EntityRef<Resource>);
 			OnCreated();
 		}
 		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
 		public System.Guid ResourceId
 		{
@@ -1440,4 +784,28 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentResourceId", DbType="UniqueIdentifier")]
+		public System.Nullable<System.Guid> ParentResourceId
+		{
+			get
+			{
+				return this._ParentResourceId;
+			}
+			set
+			{
+				if ((this._ParentResourceId != value))
+				{
+					if (this._ParentResource.HasLoadedOrAssignedValue)
+					{
+						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+					}
+					this.OnParentResourceIdChanging(value);
+					this.SendPropertyChanging();
+					this._ParentResourceId = value;
+					this.SendPropertyChanged("ParentResourceId");
+					this.OnParentResourceIdChanged();
+				}
+			}
+		}
+		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedResource", Storage="_AssignedResources", ThisKey="ResourceId", OtherKey="ResourceId")]
 		public EntitySet<AssignedResource> AssignedResources
@@ -1453,17 +821,4 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_SlaveGroup_Resource", Storage="_SlaveGroup_Resources_Parents", ThisKey="ResourceId", OtherKey="ResourceId")]
-		public EntitySet<SlaveGroup_Resource> SlaveGroup_Resources_Parents
-		{
-			get
-			{
-				return this._SlaveGroup_Resources_Parents;
-			}
-			set
-			{
-				this._SlaveGroup_Resources_Parents.Assign(value);
-			}
-		}
-		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_UptimeCalendar", Storage="_UptimeCalendars", ThisKey="ResourceId", OtherKey="ResourceId")]
 		public EntitySet<UptimeCalendar> UptimeCalendars
@@ -1479,4 +834,51 @@
 		}
 		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Resource", Storage="_ChildResources", ThisKey="ResourceId", OtherKey="ParentResourceId")]
+		public EntitySet<Resource> ChildResources
+		{
+			get
+			{
+				return this._ChildResources;
+			}
+			set
+			{
+				this._ChildResources.Assign(value);
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Resource", Storage="_ParentResource", ThisKey="ParentResourceId", OtherKey="ResourceId", IsForeignKey=true)]
+		public Resource ParentResource
+		{
+			get
+			{
+				return this._ParentResource.Entity;
+			}
+			set
+			{
+				Resource previousValue = this._ParentResource.Entity;
+				if (((previousValue != value) 
+							|| (this._ParentResource.HasLoadedOrAssignedValue == false)))
+				{
+					this.SendPropertyChanging();
+					if ((previousValue != null))
+					{
+						this._ParentResource.Entity = null;
+						previousValue.ChildResources.Remove(this);
+					}
+					this._ParentResource.Entity = value;
+					if ((value != null))
+					{
+						value.ChildResources.Add(this);
+						this._ParentResourceId = value.ResourceId;
+					}
+					else
+					{
+						this._ParentResourceId = default(Nullable<System.Guid>);
+					}
+					this.SendPropertyChanged("ParentResource");
+				}
+			}
+		}
+		
 		public event PropertyChangingEventHandler PropertyChanging;
 		
@@ -1511,5 +913,5 @@
 		}
 		
-		private void attach_SlaveGroup_Resources_Parents(SlaveGroup_Resource entity)
+		private void attach_UptimeCalendars(UptimeCalendar entity)
 		{
 			this.SendPropertyChanging();
@@ -1517,5 +919,5 @@
 		}
 		
-		private void detach_SlaveGroup_Resources_Parents(SlaveGroup_Resource entity)
+		private void detach_UptimeCalendars(UptimeCalendar entity)
 		{
 			this.SendPropertyChanging();
@@ -1523,14 +925,14 @@
 		}
 		
-		private void attach_UptimeCalendars(UptimeCalendar entity)
+		private void attach_ChildResources(Resource entity)
 		{
 			this.SendPropertyChanging();
-			entity.Resource = this;
-		}
-		
-		private void detach_UptimeCalendars(UptimeCalendar entity)
+			entity.ParentResource = this;
+		}
+		
+		private void detach_ChildResources(Resource entity)
 		{
 			this.SendPropertyChanging();
-			entity.Resource = null;
+			entity.ParentResource = null;
 		}
 	}
@@ -1547,10 +949,4 @@
 		private global::HeuristicLab.Services.Hive.Common.DataTransfer.SlaveState _Status;
 		
-		private global::HeuristicLab.Services.Hive.Common.DataTransfer.CalendarState _CalendarSyncStatus;
-		
-		private System.Nullable<System.Guid> _UseCalendarFromResourceId;
-		
-		private System.Nullable<System.Guid> _SlaveConfigId;
-		
 		private System.Nullable<int> _NumberOfCores;
 		
@@ -1561,9 +957,5 @@
 		private bool _IsAllowedToCalculate;
 		
-		private EntitySet<UptimeStatistic> _UptimeStatistics;
-		
 		private EntitySet<Job> _Jobs;
-		
-		private EntityRef<SlaveConfig> _SlaveConfig;
 		
     #region Extensibility Method Definitions
@@ -1579,10 +971,4 @@
     partial void OnSlaveStateChanging(global::HeuristicLab.Services.Hive.Common.DataTransfer.SlaveState value);
     partial void OnSlaveStateChanged();
-    partial void OnCalendarSyncStateChanging(global::HeuristicLab.Services.Hive.Common.DataTransfer.CalendarState value);
-    partial void OnCalendarSyncStateChanged();
-    partial void OnUseCalendarFromResourceIdChanging(System.Nullable<System.Guid> value);
-    partial void OnUseCalendarFromResourceIdChanged();
-    partial void OnSlaveConfigIdChanging(System.Nullable<System.Guid> value);
-    partial void OnSlaveConfigIdChanged();
     partial void OnCoresChanging(System.Nullable<int> value);
     partial void OnCoresChanged();
@@ -1597,7 +983,5 @@
 		public Slave()
 		{
-			this._UptimeStatistics = new EntitySet<UptimeStatistic>(new Action<UptimeStatistic>(this.attach_UptimeStatistics), new Action<UptimeStatistic>(this.detach_UptimeStatistics));
 			this._Jobs = new EntitySet<Job>(new Action<Job>(this.attach_Jobs), new Action<Job>(this.detach_Jobs));
-			this._SlaveConfig = default(EntityRef<SlaveConfig>);
 			OnCreated();
 		}
@@ -1683,68 +1067,4 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CalendarSyncStatus", DbType="VarChar(MAX)", CanBeNull=true)]
-		public global::HeuristicLab.Services.Hive.Common.DataTransfer.CalendarState CalendarSyncState
-		{
-			get
-			{
-				return this._CalendarSyncStatus;
-			}
-			set
-			{
-				if ((this._CalendarSyncStatus != value))
-				{
-					this.OnCalendarSyncStateChanging(value);
-					this.SendPropertyChanging();
-					this._CalendarSyncStatus = value;
-					this.SendPropertyChanged("CalendarSyncState");
-					this.OnCalendarSyncStateChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UseCalendarFromResourceId", DbType="UniqueIdentifier")]
-		public System.Nullable<System.Guid> UseCalendarFromResourceId
-		{
-			get
-			{
-				return this._UseCalendarFromResourceId;
-			}
-			set
-			{
-				if ((this._UseCalendarFromResourceId != value))
-				{
-					this.OnUseCalendarFromResourceIdChanging(value);
-					this.SendPropertyChanging();
-					this._UseCalendarFromResourceId = value;
-					this.SendPropertyChanged("UseCalendarFromResourceId");
-					this.OnUseCalendarFromResourceIdChanged();
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveConfigId", DbType="UniqueIdentifier")]
-		public System.Nullable<System.Guid> SlaveConfigId
-		{
-			get
-			{
-				return this._SlaveConfigId;
-			}
-			set
-			{
-				if ((this._SlaveConfigId != value))
-				{
-					if (this._SlaveConfig.HasLoadedOrAssignedValue)
-					{
-						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-					}
-					this.OnSlaveConfigIdChanging(value);
-					this.SendPropertyChanging();
-					this._SlaveConfigId = value;
-					this.SendPropertyChanged("SlaveConfigId");
-					this.OnSlaveConfigIdChanged();
-				}
-			}
-		}
-		
 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumberOfCores", DbType="Int")]
 		public System.Nullable<int> Cores
@@ -1827,17 +1147,4 @@
 		}
 		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Slave_UptimeStatistic", Storage="_UptimeStatistics", ThisKey="ResourceId", OtherKey="ResourceId")]
-		public EntitySet<UptimeStatistic> UptimeStatistics
-		{
-			get
-			{
-				return this._UptimeStatistics;
-			}
-			set
-			{
-				this._UptimeStatistics.Assign(value);
-			}
-		}
-		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Slave_Job", Storage="_Jobs", ThisKey="ResourceId", OtherKey="SlaveId")]
 		public EntitySet<Job> Jobs
@@ -1851,50 +1158,4 @@
 				this._Jobs.Assign(value);
 			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="SlaveConfig_Slave", Storage="_SlaveConfig", ThisKey="SlaveConfigId", OtherKey="SlaveConfigId", IsForeignKey=true, DeleteRule="SET NULL")]
-		public SlaveConfig SlaveConfig
-		{
-			get
-			{
-				return this._SlaveConfig.Entity;
-			}
-			set
-			{
-				SlaveConfig previousValue = this._SlaveConfig.Entity;
-				if (((previousValue != value) 
-							|| (this._SlaveConfig.HasLoadedOrAssignedValue == false)))
-				{
-					this.SendPropertyChanging();
-					if ((previousValue != null))
-					{
-						this._SlaveConfig.Entity = null;
-						previousValue.Slaves.Remove(this);
-					}
-					this._SlaveConfig.Entity = value;
-					if ((value != null))
-					{
-						value.Slaves.Add(this);
-						this._SlaveConfigId = value.SlaveConfigId;
-					}
-					else
-					{
-						this._SlaveConfigId = default(Nullable<System.Guid>);
-					}
-					this.SendPropertyChanged("SlaveConfig");
-				}
-			}
-		}
-		
-		private void attach_UptimeStatistics(UptimeStatistic entity)
-		{
-			this.SendPropertyChanging();
-			entity.Slave = this;
-		}
-		
-		private void detach_UptimeStatistics(UptimeStatistic entity)
-		{
-			this.SendPropertyChanging();
-			entity.Slave = null;
 		}
 		
@@ -1914,6 +1175,4 @@
 	public partial class SlaveGroup : Resource
 	{
-		
-		private EntitySet<SlaveGroup_Resource> _SlaveGroup_Resources_Children;
 		
     #region Extensibility Method Definitions
@@ -1925,31 +1184,5 @@
 		public SlaveGroup()
 		{
-			this._SlaveGroup_Resources_Children = new EntitySet<SlaveGroup_Resource>(new Action<SlaveGroup_Resource>(this.attach_SlaveGroup_Resources_Children), new Action<SlaveGroup_Resource>(this.detach_SlaveGroup_Resources_Children));
 			OnCreated();
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="SlaveGroup_SlaveGroup_Resource", Storage="_SlaveGroup_Resources_Children", ThisKey="ResourceId", OtherKey="SlaveGroupId")]
-		public EntitySet<SlaveGroup_Resource> SlaveGroup_Resources_Children
-		{
-			get
-			{
-				return this._SlaveGroup_Resources_Children;
-			}
-			set
-			{
-				this._SlaveGroup_Resources_Children.Assign(value);
-			}
-		}
-		
-		private void attach_SlaveGroup_Resources_Children(SlaveGroup_Resource entity)
-		{
-			this.SendPropertyChanging();
-			entity.SlaveGroup = this;
-		}
-		
-		private void detach_SlaveGroup_Resources_Children(SlaveGroup_Resource entity)
-		{
-			this.SendPropertyChanging();
-			entity.SlaveGroup = null;
 		}
 	}
@@ -1973,5 +1206,5 @@
 		private string _Exception;
 		
-		private System.Nullable<System.DateTime> _DateCreated;
+		private System.DateTime _DateCreated;
 		
 		private System.Nullable<System.DateTime> _DateCalculated;
@@ -1998,6 +1231,4 @@
 		
 		private EntityRef<Job> _Job1;
-		
-		private EntityRef<Project> _Project;
 		
 		private EntityRef<Slave> _Slave;
@@ -2019,5 +1250,5 @@
     partial void OnExceptionChanging(string value);
     partial void OnExceptionChanged();
-    partial void OnDateCreatedChanging(System.Nullable<System.DateTime> value);
+    partial void OnDateCreatedChanging(System.DateTime value);
     partial void OnDateCreatedChanged();
     partial void OnDateCalculatedChanging(System.Nullable<System.DateTime> value);
@@ -2044,5 +1275,4 @@
 			this._JobData = default(EntityRef<JobData>);
 			this._Job1 = default(EntityRef<Job>);
-			this._Project = default(EntityRef<Project>);
 			this._Slave = default(EntityRef<Slave>);
 			OnCreated();
@@ -2174,5 +1404,5 @@
 		
 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime")]
-		public System.Nullable<System.DateTime> DateCreated
+		public System.DateTime DateCreated
 		{
 			get
@@ -2264,8 +1494,4 @@
 				if ((this._ProjectId != value))
 				{
-					if (this._Project.HasLoadedOrAssignedValue)
-					{
-						throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
-					}
 					this.OnProjectIdChanging(value);
 					this.SendPropertyChanging();
@@ -2364,5 +1590,5 @@
 		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_Job", Storage="_Jobs", ThisKey="JobId", OtherKey="ParentJobId")]
-		public EntitySet<Job> Jobs
+		public EntitySet<Job> ChildJobs
 		{
 			get
@@ -2406,5 +1632,5 @@
 		
 		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_Job", Storage="_Job1", ThisKey="ParentJobId", OtherKey="JobId", IsForeignKey=true)]
-		public Job Job1
+		public Job ParentJob
 		{
 			get
@@ -2422,10 +1648,10 @@
 					{
 						this._Job1.Entity = null;
-						previousValue.Jobs.Remove(this);
+						previousValue.ChildJobs.Remove(this);
 					}
 					this._Job1.Entity = value;
 					if ((value != null))
 					{
-						value.Jobs.Add(this);
+						value.ChildJobs.Add(this);
 						this._ParentJobId = value.JobId;
 					}
@@ -2434,39 +1660,5 @@
 						this._ParentJobId = default(Nullable<System.Guid>);
 					}
-					this.SendPropertyChanged("Job1");
-				}
-			}
-		}
-		
-		[global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Job", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true, DeleteRule="SET NULL")]
-		public Project Project
-		{
-			get
-			{
-				return this._Project.Entity;
-			}
-			set
-			{
-				Project previousValue = this._Project.Entity;
-				if (((previousValue != value) 
-							|| (this._Project.HasLoadedOrAssignedValue == false)))
-				{
-					this.SendPropertyChanging();
-					if ((previousValue != null))
-					{
-						this._Project.Entity = null;
-						previousValue.Jobs.Remove(this);
-					}
-					this._Project.Entity = value;
-					if ((value != null))
-					{
-						value.Jobs.Add(this);
-						this._ProjectId = value.ProjectId;
-					}
-					else
-					{
-						this._ProjectId = default(Nullable<System.Guid>);
-					}
-					this.SendPropertyChanged("Project");
+					this.SendPropertyChanged("ParentJob");
 				}
 			}
@@ -2554,5 +1746,5 @@
 		{
 			this.SendPropertyChanging();
-			entity.Job1 = this;
+			entity.ParentJob = this;
 		}
 		
@@ -2560,5 +1752,5 @@
 		{
 			this.SendPropertyChanging();
-			entity.Job1 = null;
+			entity.ParentJob = null;
 		}
 	}
@@ -2827,5 +2019,7 @@
 		private System.Guid _UserId;
 		
-		private System.Nullable<System.Guid> _RootJobId;
+		private System.Guid _RootJobId;
+		
+		private System.DateTime _DateCreated;
 		
 		private EntityRef<Job> _Job;
@@ -2845,6 +2039,8 @@
     partial void OnUserIdChanging(System.Guid value);
     partial void OnUserIdChanged();
-    partial void OnRootJobIdChanging(System.Nullable<System.Guid> value);
+    partial void OnRootJobIdChanging(System.Guid value);
     partial void OnRootJobIdChanged();
+    partial void OnDateCreatedChanging(System.DateTime value);
+    partial void OnDateCreatedChanged();
     #endregion
 		
@@ -2956,5 +2152,5 @@
 		
 		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RootJobId", DbType="UniqueIdentifier")]
-		public System.Nullable<System.Guid> RootJobId
+		public System.Guid RootJobId
 		{
 			get
@@ -2975,4 +2171,24 @@
 					this.SendPropertyChanged("RootJobId");
 					this.OnRootJobIdChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime")]
+		public System.DateTime DateCreated
+		{
+			get
+			{
+				return this._DateCreated;
+			}
+			set
+			{
+				if ((this._DateCreated != value))
+				{
+					this.OnDateCreatedChanging(value);
+					this.SendPropertyChanging();
+					this._DateCreated = value;
+					this.SendPropertyChanged("DateCreated");
+					this.OnDateCreatedChanged();
 				}
 			}
@@ -3027,4 +2243,6 @@
 		
 		private System.Data.Linq.Binary _Data;
+		
+		private System.DateTime _LastUpdate;
 		
 		private EntityRef<Job> _Job;
@@ -3038,4 +2256,6 @@
     partial void OnDataChanging(System.Data.Linq.Binary value);
     partial void OnDataChanged();
+    partial void OnLastUpdateChanging(System.DateTime value);
+    partial void OnLastUpdateChanged();
     #endregion
 		
@@ -3086,4 +2306,24 @@
 					this.SendPropertyChanged("Data");
 					this.OnDataChanged();
+				}
+			}
+		}
+		
+		[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastUpdate", DbType="DateTime")]
+		public System.DateTime LastUpdate
+		{
+			get
+			{
+				return this._LastUpdate;
+			}
+			set
+			{
+				if ((this._LastUpdate != value))
+				{
+					this.OnLastUpdateChanging(value);
+					this.SendPropertyChanging();
+					this._LastUpdate = value;
+					this.SendPropertyChanged("LastUpdate");
+					this.OnLastUpdateChanged();
 				}
 			}
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.Designer.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.Designer.cs	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.Designer.cs	(revision 5106)
@@ -27,6 +27,6 @@
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
-        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=localhost;Initial Catalog=HeuristicLab.Hive;Integrated Security=True;" +
-            "")]
+        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.4;Integrated Security=T" +
+            "rue;")]
         public string HeuristicLab_Hive_LinqConnectionString {
             get {
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.settings
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.settings	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Properties/Settings.settings	(revision 5106)
@@ -1,4 +1,4 @@
 ﻿<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.Hive.Server.LINQDataAccess.Properties" GeneratedClassName="Settings">
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.Services.Hive.DataAccess.Properties" GeneratedClassName="Settings">
   <Profiles />
   <Settings>
@@ -6,8 +6,8 @@
       <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
 &lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
-  &lt;ConnectionString&gt;Data Source=localhost;Initial Catalog=HeuristicLab.Hive;Integrated Security=True;&lt;/ConnectionString&gt;
+  &lt;ConnectionString&gt;Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.4;Integrated Security=True;&lt;/ConnectionString&gt;
   &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
 &lt;/SerializableConnectionString&gt;</DesignTimeValue>
-      <Value Profile="(Default)">Data Source=localhost;Initial Catalog=HeuristicLab.Hive;Integrated Security=True;</Value>
+      <Value Profile="(Default)">Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.4;Integrated Security=True;</Value>
     </Setting>
   </Settings>
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/CreateHiveDatabaseApplication.cs
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/CreateHiveDatabaseApplication.cs	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/CreateHiveDatabaseApplication.cs	(revision 5106)
@@ -21,7 +21,9 @@
 
 using HeuristicLab.PluginInfrastructure;
+using System.IO;
+using System.Windows.Forms;
 
 namespace HeuristicLab.Services.Hive.DataAccess {
-  [Application("Create Hive-3.4 Database", "Creates new empty Hive Database.", true)]
+  [Application("Create Hive-3.4 Database", "Creates new empty Hive Database.", false)]
   class CreateHiveDatabaseApplication : ApplicationBase {
 
@@ -31,5 +33,12 @@
           db.DeleteDatabase();
         db.CreateDatabase();
+        using (var sr = new StreamReader("../../../../HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql")) {
+          var commands = sr.ReadToEnd().Split(new string[] {"GO\r"}, System.StringSplitOptions.RemoveEmptyEntries);
+          foreach (var cmd in commands) {
+            db.ExecuteCommand(cmd);
+          }
+        }
       }
+      MessageBox.Show("Successfully created HeuristicLab.Hive-3.4 database.");
     }
   }
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/cleanHiveDatabase.sql
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/cleanHiveDatabase.sql	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/cleanHiveDatabase.sql	(revision 5106)
@@ -1,17 +1,19 @@
-DELETE FROM [HeuristicLab.Hive].[dbo].AssignedResources
-DELETE FROM [HeuristicLab.Hive].[dbo].RequiredPlugins
-DELETE FROM [HeuristicLab.Hive].[dbo].PluginInfo
-DELETE FROM [HeuristicLab.Hive].[dbo].UptimeStatistics
-DELETE FROM [HeuristicLab.Hive].[dbo].UptimeCalendar
-DELETE FROM [HeuristicLab.Hive].[dbo].SlaveConfig
-DELETE FROM [HeuristicLab.Hive].[dbo].SlaveGroup_Resource
-DELETE FROM [HeuristicLab.Hive].[dbo].[Resource]
-DELETE FROM [HeuristicLab.Hive].[dbo].HiveExperiment
-DELETE FROM [HeuristicLab.Hive].[dbo].Job
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].AssignedResources
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].RequiredPlugins
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].PluginData
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].Plugin
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].UptimeCalendar
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].SlaveGroup_Resource
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].[Resource]
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].HiveExperiment
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].JobData
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].Job
 
 /** only jobs & experiments **/
-DELETE FROM [HeuristicLab.Hive].[dbo].AssignedResources
-DELETE FROM [HeuristicLab.Hive].[dbo].RequiredPlugins
-DELETE FROM [HeuristicLab.Hive].[dbo].PluginInfo
-DELETE FROM [HeuristicLab.Hive].[dbo].HiveExperiment
-DELETE FROM [HeuristicLab.Hive].[dbo].Job
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].AssignedResources
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].RequiredPlugins
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].PluginData
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].Plugin
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].HiveExperiment
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].JobData
+DELETE FROM [HeuristicLab.Hive-3.4].[dbo].Job
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/Tools/prepareHiveDatabase.sql	(revision 5106)
@@ -1,29 +1,23 @@
 /* this script is supposed to be executed after the plain DB is generated by the linq-to-sql schema */
 
-/*
-use these DROP commands if you want to run this query a second time on the same db */
+/* use these DROP commands if you want to run this query a second time on the same db */
+
 /*
 ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId DROP ROWGUIDCOL;
 ALTER TABLE dbo.Job ALTER COLUMN JobId DROP ROWGUIDCOL;
-ALTER TABLE dbo.SlaveConfig ALTER COLUMN SlaveConfigId DROP ROWGUIDCOL;
 ALTER TABLE dbo.SlaveGroup_Resource ALTER COLUMN SlaveGroup_RessourceId DROP ROWGUIDCOL;
 ALTER TABLE dbo.Plugin ALTER COLUMN PluginId DROP ROWGUIDCOL;
-ALTER TABLE dbo.Project ALTER COLUMN ProjectId DROP ROWGUIDCOL;
 ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId DROP ROWGUIDCOL;
 ALTER TABLE dbo.Resource ALTER COLUMN ResourceId DROP ROWGUIDCOL;
 ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId DROP ROWGUIDCOL;
-ALTER TABLE dbo.UptimeStatistics ALTER COLUMN UptimeStatisticsId DROP ROWGUIDCOL;
 ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId DROP ROWGUIDCOL;
 
 ALTER TABLE dbo.AssignedResources DROP CONSTRAINT [DF_AssignedResources_AssignedRessourcesId];
 ALTER TABLE dbo.Job DROP CONSTRAINT [DF_Job_JobId];
-ALTER TABLE dbo.SlaveConfig DROP CONSTRAINT [DF_SlaveConfig_SlaveConfigId];
 ALTER TABLE dbo.SlaveGroup_Resource DROP CONSTRAINT [DF_SlaveGroup_ResourceSlaveGroup_RessourceId];
 ALTER TABLE dbo.Plugin DROP CONSTRAINT [DF_Plugin_PluginId];
-ALTER TABLE dbo.Project DROP CONSTRAINT [DF_Project_ProjectId];
 ALTER TABLE dbo.RequiredPlugins DROP CONSTRAINT [DF_RequiredPlugins_RequiredPluginId];
 ALTER TABLE dbo.Resource DROP CONSTRAINT [DF_Resource_ResourceId];
 ALTER TABLE dbo.UptimeCalendar DROP CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId];
-ALTER TABLE dbo.UptimeStatistics DROP CONSTRAINT [DF_UptimeStatistics_UptimeStatisticsId];
 ALTER TABLE dbo.HiveExperiment DROP CONSTRAINT [DF_HiveExperiment_HiveExperimentId];
 */
@@ -47,15 +41,6 @@
 ALTER TABLE dbo.Job WITH NOCHECK ADD CONSTRAINT [DF_Job_JobId] DEFAULT (newid()) FOR JobId;
 
-ALTER TABLE dbo.SlaveConfig ALTER COLUMN SlaveConfigId ADD ROWGUIDCOL;
-ALTER TABLE dbo.SlaveConfig WITH NOCHECK ADD CONSTRAINT [DF_SlaveConfig_SlaveConfigId] DEFAULT (newid()) FOR SlaveConfigId;
-
-ALTER TABLE dbo.SlaveGroup_Resource ALTER COLUMN SlaveGroup_RessourceId ADD ROWGUIDCOL;
-ALTER TABLE dbo.SlaveGroup_Resource WITH NOCHECK ADD CONSTRAINT [DF_SlaveGroup_Resource_SlaveGroup_RessourceId] DEFAULT (newid()) FOR SlaveGroup_RessourceId;
-
 ALTER TABLE dbo.Plugin ALTER COLUMN PluginId ADD ROWGUIDCOL;
 ALTER TABLE dbo.Plugin WITH NOCHECK ADD CONSTRAINT [DF_Plugin_PluginId] DEFAULT (newid()) FOR PluginId;
-
-ALTER TABLE dbo.Project ALTER COLUMN ProjectId ADD ROWGUIDCOL;
-ALTER TABLE dbo.Project WITH NOCHECK ADD CONSTRAINT [DF_Project_ProjectId] DEFAULT (newid()) FOR ProjectId;
 
 ALTER TABLE dbo.RequiredPlugins ALTER COLUMN RequiredPluginId ADD ROWGUIDCOL;
@@ -81,7 +66,4 @@
 ALTER TABLE dbo.UptimeCalendar ALTER COLUMN UptimeCalendarId ADD ROWGUIDCOL;
 ALTER TABLE dbo.UptimeCalendar WITH NOCHECK ADD CONSTRAINT [DF_UptimeCalendar_UptimeCalendarId] DEFAULT (newid()) FOR UptimeCalendarId;
-
-ALTER TABLE dbo.UptimeStatistics ALTER COLUMN UptimeStatisticsId ADD ROWGUIDCOL;
-ALTER TABLE dbo.UptimeStatistics WITH NOCHECK ADD CONSTRAINT [DF_UptimeStatistics_UptimeStatisticsId] DEFAULT (newid()) FOR UptimeStatisticsId;
 
 ALTER TABLE dbo.HiveExperiment ALTER COLUMN HiveExperimentId ADD ROWGUIDCOL;
@@ -137,4 +119,5 @@
 	END
 	
+	DELETE JobData FROM JobData INNER JOIN #Table ON JobData.JobId = #Table.JobId
 	DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId
 END
Index: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/app.config
===================================================================
--- branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/app.config	(revision 5078)
+++ branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/app.config	(revision 5106)
@@ -5,6 +5,6 @@
   <connectionStrings>
     <add name="HeuristicLab.Services.Hive.DataAccess.Properties.Settings.HeuristicLab_Hive_LinqConnectionString"
-        connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.4;Integrated Security=True;"
-        providerName="System.Data.SqlClient" />
+      connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.Hive-3.4;Integrated Security=True;"
+      providerName="System.Data.SqlClient" />
   </connectionStrings>
 </configuration>
