Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAppointment.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAppointment.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/Administration/HiveAppointment.cs	(revision 5614)
@@ -23,9 +23,8 @@
 using System.Drawing;
 using System.Xml.Serialization;
-using Calendar;
 
 namespace HeuristicLab.Clients.Hive.Views.Administration {
 
-  public class HiveAppointment : Appointment {
+  public class HiveAppointment : Calendar.Appointment {
     private Guid recurringId = Guid.Empty;
 
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj	(revision 5614)
@@ -142,4 +142,11 @@
     <None Include="Properties\AssemblyInfo.cs.frame" />
     <Compile Include="Exceptions\ServiceClientFactoryException.cs" />
+    <Compile Include="ServiceClients\Appointment.cs" />
+    <Compile Include="ServiceClients\Heartbeat.cs" />
+    <Compile Include="ServiceClients\HiveExperimentPermission.cs" />
+    <Compile Include="ServiceClients\JobData.cs" />
+    <Compile Include="ServiceClients\Plugin.cs" />
+    <Compile Include="ServiceClients\PluginData.cs" />
+    <Compile Include="ServiceClients\Resource.cs" />
     <Compile Include="ServiceClients\StateLog.cs" />
     <Compile Include="ServiceClients\HiveExperiment.cs" />
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Appointment.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Appointment.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Appointment.cs	(revision 5614)
@@ -0,0 +1,48 @@
+﻿#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.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class Appointment : IDeepCloneable, IContent {
+    public Appointment() { }
+
+    protected Appointment(Appointment original, Cloner cloner) {
+      //TODO: uncommment
+      /*this.AllDayEvent = original.AllDayEvent;
+      this.EndDate = original.EndDate;
+      this.Recurring = original.Recurring;
+      this.RecurringId = original.RecurringId;
+      this.ResourceId = original.ResourceId;
+      this.StartDate = original.StartDate;
+      this.Id = original.Id;*/
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new Appointment(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Heartbeat.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Heartbeat.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Heartbeat.cs	(revision 5614)
@@ -0,0 +1,40 @@
+﻿#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 HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class Heartbeat : IContent {
+
+    public Heartbeat() { }
+
+    public override string ToString() {
+      String val = "SlaveId: " + SlaveId + ", FreeCores: " + FreeCores;
+      foreach (KeyValuePair<Guid, TimeSpan> kvp in JobProgress) {
+        val += "\nId" + kvp.Key + " ExecutionTime " + kvp.Value;
+      }
+      return val;
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs	(revision 5614)
@@ -20,13 +20,33 @@
 #endregion
 
-using HeuristicLab.Core;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("HiveExperiment", "A Hive Experiment.")]
-  public partial class HiveExperiment {
+  public partial class HiveExperiment : IDeepCloneable, IContent {
 
     public HiveExperiment() { }
 
+    protected HiveExperiment(HiveExperiment original, Cloner cloner) {
+      this.RootJobId = original.RootJobId;
+      this.OwnerUserId = original.OwnerUserId;
+      this.DateCreated = original.DateCreated;
+      this.ResourceNames = original.ResourceNames;
+      this.LastAccessed = original.LastAccessed;
+      this.Name = original.Name;
+      this.Description = original.Description;
+      this.Id = original.Id;
+    }
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new HiveExperiment(this, cloner);
+    }
+
+    public override string ToString() {
+      return base.ToString() + "Name: " + Name + ", Description: " + Description;
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperimentPermission.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperimentPermission.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperimentPermission.cs	(revision 5614)
@@ -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 HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class HiveExperimentPermission : IDeepCloneable, IContent {
+
+    public HiveExperimentPermission() { }
+
+    protected HiveExperimentPermission(HiveExperimentPermission original, Cloner cloner) {
+      /*this.HiveExperimentId = original.HiveExperimentId;
+      this.GrantedUserId = original.GrantedUserId;
+      this.GrantedByUserId = original.GrantedByUserId;
+      this.Permission = original.Permission;
+      this.Id = original.Id;*/
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new HiveExperimentPermission(this, cloner);
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs	(revision 5614)
@@ -14,120 +14,4 @@
     using System;
     
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="HiveItemBase", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    [System.SerializableAttribute()]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.JobData))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveItem))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.LightweightJob))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.StateLog))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Job))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.PluginData))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.NamedHiveItem))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.HiveExperiment))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Plugin))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Resource))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
-    public partial class HiveItemBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        [System.NonSerializedAttribute()]
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="JobData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
-        "nsfer")]
-    [System.SerializableAttribute()]
-    public partial class JobData : HeuristicLab.Clients.Hive.HiveItemBase
-    {
-        
-        [System.Runtime.Serialization.OptionalFieldAttribute()]
-        private byte[] DataField;
-        
-        [System.Runtime.Serialization.OptionalFieldAttribute()]
-        private System.Guid JobIdField;
-        
-        [System.Runtime.Serialization.OptionalFieldAttribute()]
-        private System.DateTime LastUpdateField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public byte[] Data
-        {
-            get
-            {
-                return this.DataField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DataField, value) != true))
-                {
-                    this.DataField = value;
-                    this.RaisePropertyChanged("Data");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid JobId
-        {
-            get
-            {
-                return this.JobIdField;
-            }
-            set
-            {
-                if ((this.JobIdField.Equals(value) != true))
-                {
-                    this.JobIdField = value;
-                    this.RaisePropertyChanged("JobId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.DateTime LastUpdate
-        {
-            get
-            {
-                return this.LastUpdateField;
-            }
-            set
-            {
-                if ((this.LastUpdateField.Equals(value) != true))
-                {
-                    this.LastUpdateField = value;
-                    this.RaisePropertyChanged("LastUpdate");
-                }
-            }
-        }
-    }
     
     [System.Diagnostics.DebuggerStepThroughAttribute()]
@@ -146,9 +30,24 @@
     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.Slave))]
     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.Hive.SlaveGroup))]
-    public partial class HiveItem : HeuristicLab.Clients.Hive.HiveItemBase
-    {
+    public partial class HiveItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
         
         [System.Runtime.Serialization.OptionalFieldAttribute()]
         private System.Guid IdField;
+        
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
+        {
+            get
+            {
+                return this.extensionDataField;
+            }
+            set
+            {
+                this.extensionDataField = value;
+            }
+        }
         
         [System.Runtime.Serialization.DataMemberAttribute()]
@@ -166,4 +65,15 @@
                     this.RaisePropertyChanged("Id");
                 }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName)
+        {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null))
+            {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
             }
         }
@@ -1163,4 +1073,99 @@
         [System.Runtime.Serialization.EnumMemberAttribute()]
         Offline = 2,
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="JobData", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Hive.Common.DataTra" +
+        "nsfer")]
+    [System.SerializableAttribute()]
+    public partial class JobData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+    {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private byte[] DataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.Guid JobIdField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private System.DateTime LastUpdateField;
+        
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
+        {
+            get
+            {
+                return this.extensionDataField;
+            }
+            set
+            {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public byte[] Data
+        {
+            get
+            {
+                return this.DataField;
+            }
+            set
+            {
+                if ((object.ReferenceEquals(this.DataField, value) != true))
+                {
+                    this.DataField = value;
+                    this.RaisePropertyChanged("Data");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.Guid JobId
+        {
+            get
+            {
+                return this.JobIdField;
+            }
+            set
+            {
+                if ((this.JobIdField.Equals(value) != true))
+                {
+                    this.JobIdField = value;
+                    this.RaisePropertyChanged("JobId");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public System.DateTime LastUpdate
+        {
+            get
+            {
+                return this.LastUpdateField;
+            }
+            set
+            {
+                if ((this.LastUpdateField.Equals(value) != true))
+                {
+                    this.LastUpdateField = value;
+                    this.RaisePropertyChanged("LastUpdate");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName)
+        {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null))
+            {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+            }
+        }
     }
     
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs	(revision 5614)
@@ -23,10 +23,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("Job", "A Hive job.")]
-  public partial class Job : IDeepCloneable {
+  public partial class Job : LightweightJob {
 
     public Job() { }
@@ -70,5 +68,7 @@
     }
 
-
+    public override string ToString() {
+      return string.Format("State: {0}, SlaveId: {1}, DateCreated: {2}, DateCalculated: {3}, CoresNeeded: {4}, MemoryNeeded: {5}", State, CurrentStateLog.SlaveId, DateCreated, CoresNeeded, MemoryNeeded);
+    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/JobData.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/JobData.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/JobData.cs	(revision 5614)
@@ -0,0 +1,43 @@
+﻿#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 HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class JobData : IDeepCloneable, IContent {
+    public JobData() { }
+
+    protected JobData(JobData original, Cloner cloner) {
+      if (original.Data != null) this.Data = new byte[original.Data.Length]; Array.Copy(original.Data, this.Data, original.Data.Length);
+      this.LastUpdate = original.LastUpdate;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new JobData(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs	(revision 5614)
@@ -23,10 +23,9 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Core;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("LightweightJob", "A lightweight Hive job.")]
-  public partial class LightweightJob {
+  public partial class LightweightJob : IDeepCloneable, IContent {
 
     public LightweightJob() {
@@ -40,4 +39,19 @@
       this.StateLog = new List<StateLog>(job.StateLog);
       this.State = job.State;
+    }
+
+    protected LightweightJob(LightweightJob original, Cloner cloner) {
+      this.ExecutionTime = original.ExecutionTime;
+      this.ParentJobId = original.ParentJobId;
+      this.StateLog = new List<StateLog>(original.StateLog);
+      this.State = original.State;
+      this.Id = original.Id;
+    }
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new LightweightJob(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
     }
 
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/MessageContainer.cs	(revision 5614)
@@ -26,5 +26,5 @@
 namespace HeuristicLab.Clients.Hive {
   [StorableClass]
-  public partial class MessageContainer : IDeepCloneable {
+  public partial class MessageContainer : IDeepCloneable, IContent {
 
     protected MessageContainer() { }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Plugin.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Plugin.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Plugin.cs	(revision 5614)
@@ -0,0 +1,50 @@
+﻿#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.Runtime.Serialization;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+  
+  public partial class Plugin : IDeepCloneable, IContent {
+
+    public Plugin() { }
+
+    protected Plugin(Plugin original, Cloner cloner) {
+      this.Version = original.Version;
+      this.UserId = original.UserId;
+      this.DateCreated = original.DateCreated;
+      this.IsLocal = original.IsLocal;
+      this.Name = original.Name;
+      this.Description = original.Description;
+      this.Id = original.Id;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new Plugin(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/PluginData.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/PluginData.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/PluginData.cs	(revision 5614)
@@ -0,0 +1,48 @@
+﻿#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 HeuristicLab.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class PluginData : IDeepCloneable, IContent {
+
+    public PluginData() { }
+
+    protected PluginData(PluginData original, Cloner cloner) {
+      if (original.Data != null)
+        this.Data = new byte[original.Data.Length];
+      Array.Copy(original.Data, this.Data, original.Data.Length);
+      this.FileName = original.FileName;
+      this.PluginId = original.PluginId;
+      this.Id = original.Id;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new PluginData(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Resource.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Resource.cs	(revision 5614)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Resource.cs	(revision 5614)
@@ -0,0 +1,45 @@
+﻿#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.Common;
+
+namespace HeuristicLab.Clients.Hive {
+
+  public partial class Resource : IDeepCloneable, IContent {
+
+    public Resource() { }
+
+    protected Resource(Resource original, Cloner cloner) {
+      this.ParentResourceId = original.ParentResourceId;
+      this.Name = original.Name;
+      this.Description = original.Description;
+      this.Id = original.Id;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new Resource(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+  }
+}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Slave.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Slave.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Slave.cs	(revision 5614)
@@ -20,13 +20,39 @@
 #endregion
 
-using HeuristicLab.Core;
 
+using HeuristicLab.Common;
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("Slave", "A Slave used for calculating jobs.")]
-  public partial class Slave {
+  public partial class Slave : IContent, IDeepCloneable {
 
-    public Slave() { }
+    public Slave() {
+      SlaveState = SlaveState.Idle;
+    }
 
+    protected Slave(Slave original, Cloner cloner)
+      : base(original, cloner) {
+      this.Cores = original.Cores;
+      this.FreeCores = original.FreeCores;
+      this.CpuSpeed = original.CpuSpeed;
+      this.Memory = original.Memory;
+      this.FreeMemory = original.FreeMemory;
+      this.SlaveState = original.SlaveState;
+      this.IsAllowedToCalculate = original.IsAllowedToCalculate;
+      this.OperatingSystem = original.OperatingSystem;
+      this.CpuArchitecture = original.CpuArchitecture;
+      this.LastHeartbeat = original.LastHeartbeat;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new Slave(this, cloner);
+    }
+
+    public override string ToString() {
+      return string.Format("Cores: {0}, FreeCores: {1}", Cores, FreeCores);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/SlaveGroup.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/SlaveGroup.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/SlaveGroup.cs	(revision 5614)
@@ -20,13 +20,21 @@
 #endregion
 
-using HeuristicLab.Core;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("SlaveGroup", "A group of Hive slaves.")]
-  public partial class SlaveGroup {
+  public partial class SlaveGroup : IContent, IDeepCloneable {
 
     public SlaveGroup() { }
 
+    protected SlaveGroup(SlaveGroup original, Cloner cloner) : base(original, cloner) { }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new SlaveGroup(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/StateLog.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/StateLog.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/StateLog.cs	(revision 5614)
@@ -20,13 +20,29 @@
 #endregion
 
-using HeuristicLab.Core;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Clients.Hive {
 
-  [Item("StateLog", "An entry in a log containing information for a job.")]
-  public partial class StateLog {
+  public partial class StateLog : IContent, IDeepCloneable {
 
     public StateLog() { }
 
+    protected StateLog(StateLog original, Cloner cloner) {
+      this.DateTime = original.DateTime;
+      this.UserId = original.UserId;
+      this.SlaveId = original.SlaveId;
+      this.Exception = original.Exception;
+      this.State = original.State;
+      this.JobId = original.JobId;
+      this.Id = original.Id;
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return new StateLog(this, cloner);
+    }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Appointment.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -40,16 +39,5 @@
     public Guid ResourceId { get; set; }
 
-    protected Appointment(Appointment original, Cloner cloner)
-      : base(original, cloner) {
-      this.AllDayEvent = original.AllDayEvent;
-      this.EndDate = original.EndDate;
-      this.Recurring = original.Recurring;
-      this.RecurringId = original.RecurringId;
-      this.ResourceId = original.ResourceId;
-      this.StartDate = original.StartDate;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new Appointment(this, cloner);
-    }
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperiment.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperiment.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperiment.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -40,14 +39,5 @@
 
     public HiveExperiment() { }
-    protected HiveExperiment(HiveExperiment original, Cloner cloner) : base(original, cloner) {
-      this.RootJobId = original.RootJobId;
-      this.OwnerUserId = original.OwnerUserId;
-      this.DateCreated = original.DateCreated;
-      this.ResourceNames = original.ResourceNames;
-      this.LastAccessed = original.LastAccessed;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new HiveExperiment(this, cloner);
-    }
+
 
     public override string ToString() {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperimentPermission.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperimentPermission.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveExperimentPermission.cs	(revision 5614)
@@ -22,10 +22,9 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
   [DataContract]
   [Serializable]
-  public class HiveExperimentPermission : HiveItemBase {
+  public class HiveExperimentPermission {
     [DataMember]
     public Guid HiveExperimentId { get; set; }
@@ -39,13 +38,5 @@
     public HiveExperimentPermission() { }
 
-    protected HiveExperimentPermission(HiveExperimentPermission original, Cloner cloner) : base(original, cloner) {
-      this.HiveExperimentId = original.HiveExperimentId;
-      this.GrantedUserId = original.GrantedUserId;
-      this.GrantedByUserId = original.GrantedByUserId;
-      this.Permission = original.Permission;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new HiveExperimentPermission(this, cloner);
-    }
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveItem.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveItem.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveItem.cs	(revision 5614)
@@ -1,21 +1,14 @@
 ﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
   [DataContract]
   [Serializable]
-  public abstract class HiveItem : HiveItemBase {
+  public abstract class HiveItem  {
     [DataMember]
     public Guid Id { get; set; }
 
     public HiveItem() { }
-    protected HiveItem(HiveItem original, Cloner cloner) : base(original, cloner) {
-      this.Id = original.Id;
-    }
+
   }
 }
Index: anches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveItemBase.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/HiveItemBase.cs	(revision 5613)
+++ 	(revision )
@@ -1,24 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Common;
-using System.Runtime.Serialization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Services.Hive.Common.DataTransfer {
-  [DataContract]
-  [Serializable]
-  public abstract class HiveItemBase : IDeepCloneable {
-    protected HiveItemBase() { }
-    protected HiveItemBase(HiveItemBase original, Cloner cloner) {
-      cloner.RegisterClonedObject(original, this);
-    }
-
-    public abstract IDeepCloneable Clone(Cloner cloner);
-
-    public object Clone() {
-      return Clone(new Cloner());
-    }
-  }
-}
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Job.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Job.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Job.cs	(revision 5614)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -43,20 +42,9 @@
     [DataMember]
     public bool FinishWhenChildJobsFinished { get; set; }
-    
+
     public Job() {
       this.PluginsNeededIds = new List<Guid>();
     }
-    protected Job(Job original, Cloner cloner) : base(original, cloner) {
-      this.Priority = original.Priority;
-      this.CoresNeeded = original.CoresNeeded;
-      this.MemoryNeeded = original.MemoryNeeded;
-      this.PluginsNeededIds = new List<Guid>(original.PluginsNeededIds);
-      this.LastHeartbeat = original.LastHeartbeat;
-      this.IsParentJob = original.IsParentJob;
-      this.FinishWhenChildJobsFinished = original.FinishWhenChildJobsFinished;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new Job(this, cloner);
-    }
+
 
     public override string ToString() {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/JobData.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/JobData.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/JobData.cs	(revision 5614)
@@ -21,12 +21,10 @@
 
 using System;
-using System.IO;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
   [DataContract]
   [Serializable]
-  public class JobData : HiveItemBase {
+  public class JobData {
     [DataMember]
     public Guid JobId { get; set; }
@@ -37,11 +35,5 @@
 
     public JobData() { }
-    protected JobData(JobData original, Cloner cloner) : base(original, cloner) {
-      if (original.Data != null) this.Data = new byte[original.Data.Length]; Array.Copy(original.Data, this.Data, original.Data.Length);
-      this.LastUpdate = original.LastUpdate;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new JobData(this, cloner);
-    }
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/LightweightJob.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/LightweightJob.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/LightweightJob.cs	(revision 5614)
@@ -24,5 +24,4 @@
 using System.Linq;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -54,14 +53,5 @@
       this.State = job.State;
     }
-    protected LightweightJob(LightweightJob original, Cloner cloner)
-      : base(original, cloner) {
-      this.ExecutionTime = original.ExecutionTime;
-      this.ParentJobId = original.ParentJobId;
-      this.StateLog = new List<StateLog>(original.StateLog);
-      this.State = original.State;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new LightweightJob(this, cloner);
-    }
+
 
     public void SetState(JobState state) {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/NamedHiveItem.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/NamedHiveItem.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/NamedHiveItem.cs	(revision 5614)
@@ -1,8 +1,3 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Runtime.Serialization;
-using HeuristicLab.Common;
+﻿using System.Runtime.Serialization;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -15,8 +10,5 @@
 
     protected NamedHiveItem() { }
-    protected NamedHiveItem(NamedHiveItem original, Cloner cloner) : base(original, cloner) {
-      this.Name = original.Name;
-      this.Description = original.Description;
-    }
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Plugin.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Plugin.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Plugin.cs	(revision 5614)
@@ -21,8 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -43,13 +40,6 @@
 
     public Plugin() { }
-    protected Plugin(Plugin original, Cloner cloner) : base(original, cloner) {
-      this.Version = original.Version;
-      this.UserId = original.UserId;
-      this.DateCreated = original.DateCreated;
-      this.IsLocal = original.IsLocal;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new Plugin(this, cloner);
-    }
+
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/PluginData.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/PluginData.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/PluginData.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -36,15 +35,6 @@
 
     public PluginData() { }
-    protected PluginData(PluginData original, Cloner cloner)
-      : base(original, cloner) {
-      if (original.Data != null)
-        this.Data = new byte[original.Data.Length];
-      Array.Copy(original.Data, this.Data, original.Data.Length);
-      this.FileName = original.FileName;
-      this.PluginId = original.PluginId;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new PluginData(this, cloner);
-    }
+
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Resource.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Resource.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Resource.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -32,10 +31,5 @@
 
     public Resource() { }
-    protected Resource(Resource original, Cloner cloner) : base(original, cloner) {
-      this.ParentResourceId = original.ParentResourceId;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new Resource(this, cloner);
-    }
+
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Slave.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Slave.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/Slave.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -56,19 +55,4 @@
       SlaveState = DataTransfer.SlaveState.Idle;
     }
-    protected Slave(Slave original, Cloner cloner) : base(original, cloner) {
-      this.Cores = original.Cores;
-      this.FreeCores = original.FreeCores;
-      this.CpuSpeed = original.CpuSpeed;
-      this.Memory = original.Memory;
-      this.FreeMemory = original.FreeMemory;
-      this.SlaveState = original.SlaveState;
-      this.IsAllowedToCalculate = original.IsAllowedToCalculate;
-      this.OperatingSystem = original.OperatingSystem;
-      this.CpuArchitecture = original.CpuArchitecture;
-      this.LastHeartbeat = original.LastHeartbeat;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new Slave(this, cloner);
-    }
 
     public override string ToString() {
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/SlaveGroup.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/SlaveGroup.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/SlaveGroup.cs	(revision 5614)
@@ -20,9 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
-using System.Linq;
 using System.Runtime.Serialization;
-using System;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -30,8 +26,4 @@
   public class SlaveGroup : Resource {
     public SlaveGroup() { }
-    protected SlaveGroup(SlaveGroup original, Cloner cloner) : base(original, cloner) { }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new SlaveGroup(this, cloner);
-    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/StateLog.cs
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/StateLog.cs	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/StateLog.cs	(revision 5614)
@@ -22,5 +22,4 @@
 using System;
 using System.Runtime.Serialization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Services.Hive.Common.DataTransfer {
@@ -43,15 +42,4 @@
     public StateLog() { }
 
-    protected StateLog(StateLog original, Cloner cloner) : base(original, cloner) {
-      this.DateTime = original.DateTime;
-      this.UserId = original.UserId;
-      this.SlaveId = original.SlaveId;
-      this.Exception = original.Exception;
-      this.State = original.State;
-      this.JobId = original.JobId;
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new StateLog(this, cloner);
-    }
   }
 }
Index: /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/HeuristicLab.Services.Hive.Common-3.4.csproj
===================================================================
--- /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/HeuristicLab.Services.Hive.Common-3.4.csproj	(revision 5613)
+++ /branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/HeuristicLab.Services.Hive.Common-3.4.csproj	(revision 5614)
@@ -102,5 +102,4 @@
     <Compile Include="DataTransfer\HiveExperiment.cs" />
     <Compile Include="DataTransfer\HiveItem.cs" />
-    <Compile Include="DataTransfer\HiveItemBase.cs" />
     <Compile Include="DataTransfer\Permission.cs" />
     <Compile Include="DataTransfer\PluginData.cs" />
