Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Client.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Client.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Client.cs	(revision 995)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Hive.Contracts.BusinessObjects {
 
-  public enum State { idle, calculating, offline };
+  public enum State { nullState, idle, calculating, offline };
 
   [DataContract]
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/ClientConfig.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/ClientConfig.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/ClientConfig.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class ClientConfig {
+  public class ClientConfig: IHiveObject {
     [DataMember]
-    public long ClientConfigId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public String UpDownTimeCalendar { get; set; } // TODO define DataStructure
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/GrantedPermissions.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/GrantedPermissions.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/GrantedPermissions.cs	(revision 995)
@@ -29,7 +29,7 @@
   
   [DataContract]
-  public class GrantedPermissions {
+  public class GrantedPermissions: IHiveObject {
     [DataMember]
-    public long GrantedPermissionsId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public Permission Permission { get; set; }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/IHiveObject.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/IHiveObject.cs	(revision 995)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/IHiveObject.cs	(revision 995)
@@ -0,0 +1,31 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Contracts.BusinessObjects {
+  public interface IHiveObject {
+    long Id { get; set;  }
+  }
+}
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Job.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Job.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Job.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class Job {
+  public class Job: IHiveObject {
     [DataMember]
-    public long JobId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public State State { get; set; }
@@ -38,4 +38,15 @@
     [DataMember]
     public Job ParentJob { get; set; }
+
+    public override bool Equals(object obj) {
+      if (obj is Job) {
+        return (obj as Job).Id.Equals(Id);
+      } else      
+        return base.Equals(obj);
+    }
+
+    public override int GetHashCode() {
+      return Id.GetHashCode();
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/JobResult.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/JobResult.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/JobResult.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class JobResult {
+  public class JobResult: IHiveObject {
     [DataMember]
-    public long JobResultId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public long JobId { get; set; }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Permission.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Permission.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Permission.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class Permission {
+  public class Permission: IHiveObject {
     [DataMember]
-    public long PermissionId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public String Name { get; set; }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/PermissionOwner.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/PermissionOwner.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/PermissionOwner.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class PermissionOwner {
+  public class PermissionOwner: IHiveObject {
     [DataMember]
-    public long PermissionOwnerId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public string Name { get; set; }
@@ -37,6 +37,6 @@
     public override bool Equals(object obj) {
       if (obj is PermissionOwner) 
-        return this.PermissionOwnerId.Equals(
-          (obj as PermissionOwner).PermissionOwnerId);
+        return this.Id.Equals(
+          (obj as PermissionOwner).Id);
       else
         return base.Equals(obj);
@@ -44,5 +44,5 @@
 
     public override int GetHashCode() {
-      return this.PermissionOwnerId.GetHashCode();
+      return this.Id.GetHashCode();
     }
   }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Resource.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Resource.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/Resource.cs	(revision 995)
@@ -29,10 +29,20 @@
 
   [DataContract]
-  public class Resource {
+  public class Resource: IHiveObject {
     [DataMember]
-    public long ResourceId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public string Name { get; set; }
 
+    public override bool Equals(object obj) {
+      if (obj is Resource)
+        return (obj as Resource).Id.Equals(Id);
+      else
+        return base.Equals(obj);
+    }
+
+    public override int GetHashCode() {
+      return Id.GetHashCode();
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/UpTimeStatistics.cs
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/UpTimeStatistics.cs	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/BusinessObjects/UpTimeStatistics.cs	(revision 995)
@@ -29,7 +29,7 @@
 
   [DataContract]
-  public class UpTimeStatistics {
+  public class UpTimeStatistics: IHiveObject {
     [DataMember]
-    public long UpTimeStatisticsId { get; set; }
+    public long Id { get; set; }
     [DataMember]
     public ClientInfo Client { get; set; }
Index: trunk/sources/HeuristicLab.Hive.Contracts/HeuristicLab.Hive.Contracts.csproj
===================================================================
--- trunk/sources/HeuristicLab.Hive.Contracts/HeuristicLab.Hive.Contracts.csproj	(revision 969)
+++ trunk/sources/HeuristicLab.Hive.Contracts/HeuristicLab.Hive.Contracts.csproj	(revision 995)
@@ -74,4 +74,5 @@
     <Compile Include="BusinessObjects\ClientGroup.cs" />
     <Compile Include="BusinessObjects\HeartBeatData.cs" />
+    <Compile Include="BusinessObjects\IHiveObject.cs" />
     <Compile Include="BusinessObjects\Job.cs" />
     <Compile Include="BusinessObjects\JobResult.cs" />
