diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractExpression.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractExpression.java
index 2db7999c9ff93552e2bce3c589e2aba7e326a8d4..fd00b6a7cee0ac9785b6f5dfbfd82028f9bbc63a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractExpression.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractExpression.java
@@ -16,12 +16,10 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores information describing the common part of grid custom filter and column.
@@ -29,7 +27,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
  * @author Izabela Adamczyk
  */
 public abstract class AbstractExpression extends AbstractRegistrationHolder implements
-        IsSerializable, Serializable, IIdHolder, IExpressionUpdates
+        ISerializable, IIdHolder, IExpressionUpdates
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractProjectUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractProjectUpdates.java
index f99cb0026d6c3b8fbdd689942a9d9a6bb02d6aea..183a4ede8e4fb3c072cc483cc95916196c92b1dd 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractProjectUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractProjectUpdates.java
@@ -16,11 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 
 /**
@@ -28,7 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
  * 
  * @author Tomasz Pylak
  */
-public class AbstractProjectUpdates implements IsSerializable, Serializable
+public class AbstractProjectUpdates implements ISerializable
 {
 
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractRegistrationHolder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractRegistrationHolder.java
index d78579958296d2c0332c2f6daf8d10c4033c7c22..3b456b44f89f7474dbc71a4e522cab643f4567f3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractRegistrationHolder.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AbstractRegistrationHolder.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Super class of <i>DTO</i>s which hold registration data.
  * 
  * @author Christian Ribeaud
  */
-public abstract class AbstractRegistrationHolder implements IsSerializable, Serializable
+public abstract class AbstractRegistrationHolder implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ArchivingServiceKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ArchivingServiceKind.java
index 131c4e739fb606aec7302cec6c050b838342c55b..2f3964ea1a84a5d1d61ee874a45520bb43b6758e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ArchivingServiceKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ArchivingServiceKind.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Piotr Buczek
  */
-public enum ArchivingServiceKind implements Serializable, IsSerializable
+public enum ArchivingServiceKind implements ISerializable
 {
     ARCHIVE("Archiving"), UNARCHIVE("Unarchiving"), LOCK("Disable Archiving"), UNLOCK(
             "Enable Archiving");
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AttachmentHolderKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AttachmentHolderKind.java
index c1876a377f070fa198e044c4f90578f7ec9fdd84..e1046f93a6796d7f8365062d30f33c8d295ab478 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AttachmentHolderKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AttachmentHolderKind.java
@@ -16,12 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Izabela Adamczyk
  */
-public enum AttachmentHolderKind implements IsSerializable
+public enum AttachmentHolderKind implements ISerializable
 {
     PROJECT, EXPERIMENT, SAMPLE
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AuthorizationGroupUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AuthorizationGroupUpdates.java
index 021eb801ba5a9b8e31dbcdd052fc36ecc13b3c98..5f445b050362b15a8b2d86ee22074950e8cb4d00 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AuthorizationGroupUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/AuthorizationGroupUpdates.java
@@ -16,11 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 
 /**
@@ -28,7 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
  * 
  * @author Izabela Adamczyk
  */
-public class AuthorizationGroupUpdates implements IsSerializable, Serializable
+public class AuthorizationGroupUpdates implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicDataSetUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicDataSetUpdates.java
index 30ec82f3a4293d25518cb6682a0ae17cf4c4f612..1aa615c502ebcaad360f3acb8eed8698dcf558bf 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicDataSetUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicDataSetUpdates.java
@@ -16,18 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 
 /**
  * @author Piotr Buczek
  */
-public class BasicDataSetUpdates implements IsSerializable, Serializable
+public class BasicDataSetUpdates implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicEntityDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicEntityDescription.java
index e0e06ce7ad40548fd2140d22d6f0ef1d1084f4ea..75305a1d159ad287e12f5f8f6e8619420a44e398 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicEntityDescription.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicEntityDescription.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Entity kind and identifier.
  * 
  * @author Izabela Adamczyk
  */
-public class BasicEntityDescription implements IsSerializable, Serializable
+public class BasicEntityDescription implements ISerializable
 {
 
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicExperimentUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicExperimentUpdates.java
index 02f95877cf4218267910f21467726c20f85ba380..240e4df004faa85ced3a89bbef61bbe1b06a3674 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicExperimentUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicExperimentUpdates.java
@@ -16,16 +16,15 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Tomasz Pylak
  */
-public class BasicExperimentUpdates implements IsSerializable, Serializable
+public class BasicExperimentUpdates implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicProjectIdentifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicProjectIdentifier.java
index 6055de8a3400682d95e85647794e4e6694c2959d..929fb763ff196d43ba1b396aec0449cca64f66d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicProjectIdentifier.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicProjectIdentifier.java
@@ -16,9 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The <i>GWT</i> counterpart to
@@ -26,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Piotr Buczek
  */
-public class BasicProjectIdentifier implements IsSerializable, Serializable
+public class BasicProjectIdentifier implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java
index b65ff46c7eb88050dc51443c80b345f27c1dc869..1a908b44055b5edd2572368d8f9ac4a316618667 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java
@@ -16,18 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 
 /**
  * @author Izabela Adamczyk
  */
-public class BasicSampleUpdates implements IsSerializable, Serializable
+public class BasicSampleUpdates implements ISerializable
 {
 
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchOperationKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchOperationKind.java
index 7288c767030e2a87f72e07b53b4075021e657958..8f8cf74b7afc0b0d88501b7ef52021e6421faf27 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchOperationKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchOperationKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Enumeration for batch operation kinds.
  * 
  * @author Piotr Buczek
  */
-public enum BatchOperationKind implements IsSerializable
+public enum BatchOperationKind implements ISerializable
 {
     REGISTRATION("Registration"), UPDATE("Update");
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchRegistrationResult.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchRegistrationResult.java
index 64a5803f3b7e8f88600e05d9c1abd553098bca81..7d3dc6c902fc6f86ad65962f0751857133bf070a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchRegistrationResult.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BatchRegistrationResult.java
@@ -16,9 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Batch registration is based on file input. This class returns to the client a small message after
@@ -26,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Christian Ribeaud
  */
-public class BatchRegistrationResult implements IsSerializable, Serializable
+public class BatchRegistrationResult implements ISerializable
 {
 
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Code.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Code.java
index 56ae7fd41908d61ee3c621db94fc7d866d260728..9c92c4015d90d83072b6906a6b0d83907a3e0144 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Code.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Code.java
@@ -22,18 +22,16 @@ import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.common.annotation.BeanProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * A code.
  * 
  * @author Christian Ribeaud
  */
-public class Code<T extends Code<T>> implements IsSerializable, ICodeHolder, Comparable<T>,
-        Serializable
+public class Code<T extends Code<T>> implements ISerializable, ICodeHolder, Comparable<T>
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
index 19e55933357109fbf9ba32d64d99e5bd064fb402..3728330f7f072c85ceca0449238a875f54575cef 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ColumnSetting.java
@@ -18,7 +18,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
 import java.io.Serializable;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Class storing personalised display settings for a table column. This class implements
@@ -27,9 +27,9 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * <p>
  * Note: This class has to be Java serializable and GWT serializable.
  * 
- * @author     Franz-Josef Elmer
+ * @author Franz-Josef Elmer
  */
-public class ColumnSetting implements Serializable, IsSerializable
+public class ColumnSetting implements ISerializable
 {
     private static final long serialVersionUID = 1L;
 
@@ -105,7 +105,8 @@ public class ColumnSetting implements Serializable, IsSerializable
     @Override
     public String toString()
     {
-         return columnID + "( hidden = " + hidden + ", width = " + width + ", hasFilter = "
-                + hasFilter + " )";   }
+        return columnID + "( hidden = " + hidden + ", width = " + width + ", hasFilter = "
+                + hasFilter + " )";
+    }
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/CommonGridIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/CommonGridIDs.java
index 897f4db376612800062a992e5b0f5c892bea8fbb..890de18ebaf9ab243ea00d371d4850d41ce61b93 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/CommonGridIDs.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/CommonGridIDs.java
@@ -16,18 +16,25 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
-public class CommonGridIDs
+public class CommonGridIDs implements ISerializable
 {
+    private static final long serialVersionUID = 1L;
+
     public static final String CODE = "CODE";
+
     public static final String LABEL = "LABEL";
+
     public static final String DESCRIPTION = "DESCRIPTION";
+
     public static final String ORDINAL = "ORDINAL";
+
     public static final String REGISTRATOR = "REGISTRATOR";
+
     public static final String REGISTRATION_DATE = "REGISTRATION_DATE";
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetAttributeSearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetAttributeSearchFieldKind.java
index 9c1cff8ab96c80f21d0e5aa282c6894f372ffd81..c949441f26b71135716a49469af834dfbcbfe4c0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetAttributeSearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetAttributeSearchFieldKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Kinds of fields connected with Data Set attributes that can be used in detailed text queries.
  * 
  * @author Piotr Buczek
  */
-public enum DataSetAttributeSearchFieldKind implements IsSerializable, IAttributeSearchFieldKind
+public enum DataSetAttributeSearchFieldKind implements ISerializable, IAttributeSearchFieldKind
 {
     CODE("Code"),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelatedEntities.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelatedEntities.java
index 479bbe4470c916a7db3344abecd6d820b011ba17..a323f828ba3fa977ffe0558422a83f012facb366 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelatedEntities.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelatedEntities.java
@@ -18,17 +18,17 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Encapsulates entities related to data sets.
  * 
  * @author Piotr Buczek
  */
-public class DataSetRelatedEntities implements IsSerializable
+public class DataSetRelatedEntities implements ISerializable
 {
+    private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
     private final List<? extends IEntityInformationHolder> entities;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelationshipRole.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelationshipRole.java
index 9cd2453cb85d06ad5a67a213a4c202145067c4a8..261973aba06cbb6d0128a4936bf02c26313ea78f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelationshipRole.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetRelationshipRole.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Piotr Buczek
  */
-public enum DataSetRelationshipRole implements Serializable, IsSerializable
+public enum DataSetRelationshipRole implements ISerializable
 {
     PARENT, CHILD;
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypePropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypePropertyType.java
index b5bcb7c075126b886f502550a43a69dc29f0593b..f36c3a1901d62ed24d0b67936a3d4e3fbb3ca42a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypePropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypePropertyType.java
@@ -16,9 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The {@link EntityTypePropertyType} extension for <i>Data Set Type</i>.
@@ -26,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * @author Izabela Adamczyk
  */
 public class DataSetTypePropertyType extends EntityTypePropertyType<DataSetType> implements
-        IsSerializable, Serializable
+        ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypeWithVocabularyTerms.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypeWithVocabularyTerms.java
index f4b8072ac4bbd774c733f8f6a9ec195ce7f677a6..9c02de19b5001215111378a1f3a5b9e9d8cd896d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypeWithVocabularyTerms.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetTypeWithVocabularyTerms.java
@@ -16,23 +16,22 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
-public class DataSetTypeWithVocabularyTerms implements IsSerializable, Serializable
+public class DataSetTypeWithVocabularyTerms implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-    
+
     private DataSetType dataSetType;
-    private List<PropertyTypeWithVocabulary> propertyTypes = new ArrayList<PropertyTypeWithVocabulary>();
+
+    private List<PropertyTypeWithVocabulary> propertyTypes =
+            new ArrayList<PropertyTypeWithVocabulary>();
 
     public DataSetType getDataSetType()
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetUpdateResult.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetUpdateResult.java
index 93383b060dcd5cfa3411491f3ec22270eba14b3d..817a28eceb1ff71c511594544149ff4eb8035d89 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetUpdateResult.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSetUpdateResult.java
@@ -16,18 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores result of data set update.
  * 
  * @author Piotr Buczek
  */
-public class DataSetUpdateResult implements IsSerializable, Serializable
+public class DataSetUpdateResult implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataStoreServiceKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataStoreServiceKind.java
index d5a4a0b797757c8c4004d6952d7cea2b84c328c8..4056c970e08fda8fbf7330fee9ab9b535031fd12 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataStoreServiceKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataStoreServiceKind.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Tomasz Pylak
  */
-public enum DataStoreServiceKind implements Serializable, IsSerializable
+public enum DataStoreServiceKind implements ISerializable
 {
     // Do not refactor names - they are stored in database.
     PROCESSING("Processing"), QUERIES("Query");
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataType.java
index e117c5b0f42956864535970069663c9115db3da2..95169cabc3fffc5f9d431a2474767029c42d1403 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataType.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * A class that represents a data type.
  * 
  * @author Izabela Adamczyk
  */
-public final class DataType implements IsSerializable, Serializable
+public final class DataType implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataTypeCode.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataTypeCode.java
index 350b47d387951ab56c44726d501a12f81947e1a0..5a643282b4da143ea013b0ba748539aa95a1816c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataTypeCode.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataTypeCode.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Available types of entity properties.
  * 
  * @author Izabela Adamczyk
  */
-public enum DataTypeCode implements IsSerializable, Serializable
+public enum DataTypeCode implements ISerializable
 {
     // Do not refactor names - they are stored in database.
     INTEGER, VARCHAR, MULTILINE_VARCHAR, REAL, TIMESTAMP, BOOLEAN, CONTROLLEDVOCABULARY, MATERIAL,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java
index a469dd557a35a913891fe7adfbfd9b78f4898dfb..ff0fb02698444d9467758c18dd11cd79ad26c704 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java
@@ -22,13 +22,17 @@ import java.util.List;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+
 /**
  * Stores the kind of database object that was modified and the kind of modification.
  * 
  * @author Tomasz Pylak
  */
-public class DatabaseModificationKind implements IsSerializable
+public class DatabaseModificationKind implements ISerializable
 {
+    private static final long serialVersionUID = 1L;
+
     public static final DatabaseModificationKind[] EMPTY_ARRAY = new DatabaseModificationKind[0];
 
     public enum ObjectKind implements IsSerializable
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatastoreServiceDescription.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatastoreServiceDescription.java
index 8ce19c9cf4e5bbf3d4e5c50ec01fed1067153aa0..e92eaef7709adfb718c2911f1ba98c77771a60ee 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatastoreServiceDescription.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatastoreServiceDescription.java
@@ -16,20 +16,18 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Arrays;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IReportInformationProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Description of one datastore server plugin task: key, label, dataset type codes.
  * 
  * @author Tomasz Pylak
  */
-public class DatastoreServiceDescription implements IReportInformationProvider, IsSerializable,
-        Serializable, Comparable<DatastoreServiceDescription>
+public class DatastoreServiceDescription implements IReportInformationProvider, ISerializable,
+        Comparable<DatastoreServiceDescription>
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailViewConfiguration.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailViewConfiguration.java
index 93def33cd1e59b90a4addc5aa8e20ce8a928b27c..8413ce06235ee97edf6659584ed1e4ba2c8a1121 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailViewConfiguration.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailViewConfiguration.java
@@ -16,18 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.HashSet;
 import java.util.Set;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Entity detail view configuration.
  * 
  * @author Izabela Adamczyk
  */
-public class DetailViewConfiguration implements IsSerializable, Serializable
+public class DetailViewConfiguration implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriteria.java
index c2ab089ffb645ea35ab0cfb7aef4ad42638ed297..25f2ae6f55b993d2646630d64b4aa0f2934246e9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriteria.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriteria.java
@@ -16,10 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Describes detailed search criteria specific to an entity.
@@ -27,7 +26,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * @author Izabela Adamczyk
  * @author Piotr Buczek
  */
-public class DetailedSearchCriteria implements IsSerializable, Serializable
+public class DetailedSearchCriteria implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriterion.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriterion.java
index 11090506787c094bf91ddac6b742d507ee87d0af..c91b484a9b694e3d2381e1484707f4e26a081261 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriterion.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchCriterion.java
@@ -16,15 +16,13 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Izabela Adamczyk
  * @author Piotr Buczek
  */
-public class DetailedSearchCriterion implements IsSerializable, Serializable
+public class DetailedSearchCriterion implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchField.java
index 178f37aee376557358a764c3005632712d3e2913..74433674da046785612c7a7618d0183b62742355 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchField.java
@@ -16,10 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Full specification of the field connected with an entity which can be used in detailed text
@@ -28,7 +27,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * @author Tomasz Pylak
  * @author Piotr Buczek
  */
-public class DetailedSearchField implements IsSerializable, Serializable
+public class DetailedSearchField implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchFieldKind.java
index 20f72b89d5a92431372913b4d08650f6f05d1491..91a143d1b506c616b60e455c034b0e258dbee5c1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DetailedSearchFieldKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * General kinds of fields that can be used in detailed text query for an entity.
  * 
  * @author Piotr Buczek
  */
-public enum DetailedSearchFieldKind implements IsSerializable
+public enum DetailedSearchFieldKind implements ISerializable
 {
     ANY_FIELD("Any Field"),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
index aa7c6aa9facd4873053b9e8d8ddaf327443f8fc5..417dd92375f06733a06845906e6debb0c92d202c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
@@ -21,8 +21,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
@@ -37,7 +35,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
  * 
  * @author Franz-Josef Elmer
  */
-public class DisplaySettings implements Serializable, IsSerializable
+public class DisplaySettings implements ISerializable
 {
     private static final long serialVersionUID = 1L;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityKind.java
index 27ae7bd42c34ea002fb257af7f719b2eb5d4d097..1b7b2a9e340b9145ae69d995f158f0291f75a7d2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityKind.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The <i>GWT</i> counterpart to
@@ -24,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Christian Ribeaud
  */
-public enum EntityKind implements IsSerializable
+public enum EntityKind implements ISerializable
 {
     MATERIAL("Material"), EXPERIMENT("Experiment"), SAMPLE("Sample"), DATA_SET("Data Set");
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityReference.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityReference.java
index 4e38f4d5731e00296d6dd503e268c499cddc764d..22fa06e29ad91042a4508a05c335c34367cd4d68 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityReference.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityReference.java
@@ -16,11 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Reference to an entity with minimal information to uniquely identify it in the database and to
@@ -28,8 +25,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWit
  * 
  * @author Tomasz Pylak
  */
-public class EntityReference implements Serializable, IsSerializable,
-        IEntityInformationHolderWithPermId
+public class EntityReference implements ISerializable, IEntityInformationHolderWithPermId
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityTypePropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityTypePropertyType.java
index 5130b18edff95edffba056196155dcf5da39a37a..fd9fc298b9579e0c02836304e323b8310783db17 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityTypePropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/EntityTypePropertyType.java
@@ -16,17 +16,15 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * An <i>abstract</i> entity type property type.
  * 
  * @author Christian Ribeaud
  */
-public abstract class EntityTypePropertyType<T extends EntityType> implements IsSerializable,
-        Comparable<EntityTypePropertyType<T>>, Serializable
+public abstract class EntityTypePropertyType<T extends EntityType> implements ISerializable,
+        Comparable<EntityTypePropertyType<T>>
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentAttributeSearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentAttributeSearchFieldKind.java
index 06cc9b0b54a31698fc7ad4ad6dddde5f2ad85964..1d9c9dd8130e1609a24c4140647fb078ce64c702 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentAttributeSearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentAttributeSearchFieldKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Kinds of fields connected with Experiment attributes that can be used in detailed text queries.
  * 
  * @author Piotr Buczek
  */
-public enum ExperimentAttributeSearchFieldKind implements IsSerializable, IAttributeSearchFieldKind
+public enum ExperimentAttributeSearchFieldKind implements ISerializable, IAttributeSearchFieldKind
 {
     CODE("Code"),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentBatchUpdateDetails.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentBatchUpdateDetails.java
index 59539906821ddf75ae9897e291ff21c478e3ea99..e93f0d4806bcf735817a583c9fc9d72d6cc38e27 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentBatchUpdateDetails.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentBatchUpdateDetails.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Set;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Holds information about which experiment attributes should be updated.
  * 
  * @author Piotr Buczek
  */
-public class ExperimentBatchUpdateDetails implements IsSerializable, Serializable
+public class ExperimentBatchUpdateDetails implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentTypePropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentTypePropertyType.java
index a58dcf8f9f4f3cb0b074ad73ff72be374feb28a6..2d20f41b21456b1e4d9cbcc14ba9c81013e9668a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentTypePropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentTypePropertyType.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The {@link EntityTypePropertyType} extension for <i>Experiment Type</i>.
@@ -24,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * @author Izabela Adamczyk
  */
 public class ExperimentTypePropertyType extends EntityTypePropertyType<ExperimentType> implements
-        IsSerializable
+        ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentUpdateResult.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentUpdateResult.java
index ad70b021221a9b2a86a1ae062df471f8848eeca2..9ed1574c9b1590cf8b205180256f2e12f5ce414f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentUpdateResult.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExperimentUpdateResult.java
@@ -16,18 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores result of experiment update.
  * 
  * @author Izabela Adamczyk
  */
-public class ExperimentUpdateResult implements IsSerializable, Serializable
+public class ExperimentUpdateResult implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Grantee.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Grantee.java
index 567d62601d47faa584ba21822fafe9bd0fa8902b..b33286fab2c2dfbfbd1ded017e35543165d75b42 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Grantee.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Grantee.java
@@ -16,16 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+
 /**
  * Role grantee.
  * 
  * @author Izabela Adamczyk
  */
-public class Grantee implements IsSerializable, Serializable
+public class Grantee implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IEntityProperty.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IEntityProperty.java
index 1c59f7befa7f11cc4fbbc0bf72d90f453c95b59b..f420b03800a97c808f9d1e8d6412a30ff46f659f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IEntityProperty.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IEntityProperty.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * An interface for entity properties.
  * 
  * @author Bernd Rinn
  */
-public interface IEntityProperty extends Serializable, IsSerializable, Comparable<IEntityProperty>
+public interface IEntityProperty extends ISerializable, Comparable<IEntityProperty>
 {
     public static final IEntityProperty[] EMPTY_ARRAY = new IEntityProperty[0];
 
@@ -34,9 +32,9 @@ public interface IEntityProperty extends Serializable, IsSerializable, Comparabl
      * will be represented as their CODE, material values will be represented as "CODE (TYPE_CODE)".
      */
     public String tryGetAsString();
-    
+
     public String tryGetOriginalValue();
-    
+
     public Material getMaterial();
 
     public void setMaterial(Material material);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IExpressionUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IExpressionUpdates.java
index b9108737dae8afa777ef1ccf052ca12527ec5cbb..b2f365b2a0366e96f5c6c55fe42138639f3de30d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IExpressionUpdates.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/IExpressionUpdates.java
@@ -16,9 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Description of the updates which should be performed on a stored expression (e.g. grid custom
@@ -26,7 +25,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder;
  * 
  * @author Piotr Buczek
  */
-public interface IExpressionUpdates extends IIdHolder, IsSerializable
+public interface IExpressionUpdates extends IIdHolder, ISerializable
 {
     String getDescription();
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISerializableComparable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISerializableComparable.java
index 3e91638351a2516fc753c1574c2a49b421984afd..9618ead4554eefb6f7aa5f7d1649597b5b1055d4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISerializableComparable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ISerializableComparable.java
@@ -16,17 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Interface for objects which are comparable, java.io.Serializable and GWT serializable.
- * 
  * Implementations should override {@link Object#equals(Object)} and {@link Object#hashCode()}.
- *
+ * 
  * @author Franz-Josef Elmer
  */
-public interface ISerializableComparable extends IsSerializable, Serializable, Comparable<ISerializableComparable>
+public interface ISerializableComparable extends ISerializable, Comparable<ISerializableComparable>
 {
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Identifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Identifier.java
index 0087a8d66cddced2aaf5a81e745d86b85b69b591..e44592b8a80bd261ab17bcd219b9b8d77b4872c8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Identifier.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Identifier.java
@@ -19,18 +19,17 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 import java.io.Serializable;
 import java.util.Comparator;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.common.annotation.BeanProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * An identifier.
  * 
  * @author Christian Ribeaud
  */
-public class Identifier<T extends Identifier<T>> implements IsSerializable, Comparable<T>,
-        IIdentifierHolder, Serializable
+public class Identifier<T extends Identifier<T>> implements ISerializable, Comparable<T>,
+        IIdentifierHolder
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LastModificationState.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LastModificationState.java
index 721d387195824379b001bbd41351305982c8cf16..3e9a52001912f43968caa72b522b7c886511a8c8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LastModificationState.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LastModificationState.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.annotation.DoNotEscape;
 
 /**
@@ -33,7 +31,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.annotation.DoNotEscape;
  * @author Tomasz Pylak
  */
 @DoNotEscape
-public class LastModificationState implements IsSerializable, Serializable
+public class LastModificationState implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LinkModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LinkModel.java
index 7389ec284d09a89dbf43cdebcde6cfcdcef9876a..60b6d4469c24385f03775f95b2c7319ade0dfcc5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LinkModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/LinkModel.java
@@ -22,6 +22,8 @@ import java.util.List;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+
 /**
  * A model for reporting plug-ins of type DSS_LINK. It keeps the different parts of the URL separate
  * so that users can easily use only the parts they need.
@@ -39,7 +41,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
-public class LinkModel implements IsSerializable, Serializable
+public class LinkModel implements ISerializable
 {
     // Package visible constant
     static final String SESSION_ID_PARAMETER_NAME = "sessionID";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListDataSetByPropertyCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListDataSetByPropertyCriteria.java
index 203fa4be90ebd8cdd782bcf07dc86bbe2ad0491c..ed3158f0af0563d57bcd5dc68244b601bd80851a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListDataSetByPropertyCriteria.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListDataSetByPropertyCriteria.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Izabela Adamczyk
  */
-public class ListDataSetByPropertyCriteria implements IsSerializable, Serializable
+public class ListDataSetByPropertyCriteria implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListMaterialCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListMaterialCriteria.java
index 17e33741ec2e9b962abc4343d03a1266c9f71463..e2db72b4b4d7dcf2ba77ecf9397974daf2a90f0f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListMaterialCriteria.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListMaterialCriteria.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Collection;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Criteria for listing <i>materials</i>.
  * 
  * @author Izabela Adamczyk
  */
-public final class ListMaterialCriteria implements IsSerializable, Serializable
+public final class ListMaterialCriteria implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java
index 19848e236d9e928a5bd86b0f70b70646442243c9..f0b2607bda4ce5a853952dc0b2902ebc0295c477 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ListSampleCriteria.java
@@ -16,11 +16,9 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Collection;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 
 /**
@@ -38,7 +36,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
  * @author Tomasz Pylak
  * @author Piotr Buczek
  */
-public class ListSampleCriteria implements IsSerializable, Serializable
+public class ListSampleCriteria implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
@@ -64,7 +62,7 @@ public class ListSampleCriteria implements IsSerializable, Serializable
 
     // --------- filter 5 fields
     private TechId experimentId;
-    
+
     private Collection<Long> childrenSampleIds;
 
     // ----
@@ -96,7 +94,7 @@ public class ListSampleCriteria implements IsSerializable, Serializable
         criteria.setChildrenSampleIds(childrenSampleIds);
         return criteria;
     }
-    
+
     public static ListSampleCriteria createForExperiment(final TechId experimentId)
     {
         final ListSampleCriteria criteria = new ListSampleCriteria();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MatchingEntity.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MatchingEntity.java
index 69e393c4e03f82db283e503f5395a06cf746f3b1..f23e617aa1ba6d260b66819ff060d57dcf90a5bc 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MatchingEntity.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MatchingEntity.java
@@ -16,9 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * An entity that matches the <i>Hibernate Search</i> query and which has been returned by the
@@ -26,8 +25,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWit
  * 
  * @author Christian Ribeaud
  */
-public final class MatchingEntity implements IsSerializable, IEntityInformationHolderWithPermId
+public final class MatchingEntity implements ISerializable, IEntityInformationHolderWithPermId
 {
+    private static final long serialVersionUID = 1L;
+
     private Long id;
 
     private String code;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialAttributeSearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialAttributeSearchFieldKind.java
index 912e188abefeb31b6eb2d6e22a4021353c178e02..f93d8fffea568d6d5d3c27bab2036fc2648c080c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialAttributeSearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialAttributeSearchFieldKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Kinds of fields connected with Material attributes that can be used in detailed text queries.
  * 
  * @author Piotr Buczek
  */
-public enum MaterialAttributeSearchFieldKind implements IsSerializable, IAttributeSearchFieldKind
+public enum MaterialAttributeSearchFieldKind implements ISerializable, IAttributeSearchFieldKind
 {
     CODE("Code"),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialIdentifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialIdentifier.java
index c36aa2bfe0723b00eda5ad2d9d315abc0dbe105b..635b15c4080fe4bd9daaabfa187acc52902e85d5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialIdentifier.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialIdentifier.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Identifier for searching material through <i>Web Service</i> lookup methods in the database.
  * 
  * @author Christian Ribeaud
  */
-public final class MaterialIdentifier implements IsSerializable, Serializable
+public final class MaterialIdentifier implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialTypePropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialTypePropertyType.java
index 2a5372c5577c86e100d8ad5e42c35bdc319d7787..5395361000dc647c112cff30ef5f86f2654752ba 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialTypePropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/MaterialTypePropertyType.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The {@link EntityTypePropertyType} extension for <i>Material Type</i>.
@@ -24,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * @author Izabela Adamczyk
  */
 public class MaterialTypePropertyType extends EntityTypePropertyType<MaterialType> implements
-        IsSerializable
+        ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAttachment.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAttachment.java
index fd955f2e46139487974dc4ef22f64b05d3188812..0f58bca015419bf3c9b7b9f8382d15ea6cd319f0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAttachment.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAttachment.java
@@ -16,22 +16,24 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * An attachment to register.
  * 
  * @author Piotr Buczek
  */
-public class NewAttachment implements IsSerializable
+public class NewAttachment implements ISerializable
 {
 
+    private static final long serialVersionUID = 1L;
+
     private String filePath;
 
     private String title;
 
     private String description;
-    
+
     private byte[] content;
 
     public NewAttachment()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAuthorizationGroup.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAuthorizationGroup.java
index 0d101220c210ac764f182a408fe0d32a36c6505b..8aa4a02a6aa4b5e4fda46be5d3e32fbc3d840331 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAuthorizationGroup.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewAuthorizationGroup.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Details of new authorization group.
  * 
  * @author Izabela Adamczyk
  */
-public class NewAuthorizationGroup implements IsSerializable, Serializable
+public class NewAuthorizationGroup implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewETPTAssignment.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewETPTAssignment.java
index f38507b99a069e26a1b3e57e1112c126b4a455e3..692657bf04cefeb8e26997c8ce3c90f40d4601b0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewETPTAssignment.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewETPTAssignment.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores data needed to create new entity type-property type assignment.
  * 
  * @author Izabela Adamczyk
  */
-public class NewETPTAssignment implements IsSerializable, Serializable
+public class NewETPTAssignment implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewExpression.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewExpression.java
index 0c07a4b0e603a9283f0bfd6920f26aa6322be542..ba2c1e90deb4ee64e986901f06634c0ed84580fe 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewExpression.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewExpression.java
@@ -16,14 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Franz-Josef Elmer
  */
-public class NewExpression implements IsSerializable, Serializable
+public class NewExpression implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSamplesWithTypes.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSamplesWithTypes.java
index 6f6065a0bf8718422dff7fe61575379883678947..620722f79ad34b3deb8a8f2e437c241fe6e6532c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSamplesWithTypes.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSamplesWithTypes.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Contains a list of new samples and their type.
  * 
  * @author Izabela Adamczyk
  */
-public class NewSamplesWithTypes implements IsSerializable, Serializable
+public class NewSamplesWithTypes implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Null.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Null.java
index 337fca24564be4c37c64a0fe02c832a28c6312a7..8e15e9e7fe571f7a394d99d776ec895190268b50 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Null.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Null.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Serializable null object.
- *
+ * 
  * @author Franz-Josef Elmer
  */
-public class Null implements Serializable, IsSerializable
+public class Null implements ISerializable
 {
 
     private static final long serialVersionUID = 1L;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterValue.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterValue.java
index 26ed284edff45496911a3067922832bf175a2555..08525bcca5e9d9eba28b1a10e3b03d603f74fa75 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterValue.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterValue.java
@@ -16,12 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Piotr Buczek
  */
-public class ParameterValue implements Comparable<ParameterValue>, IsSerializable
+public class ParameterValue implements Comparable<ParameterValue>, ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
index b90a45921786c349b2d41ce4ee68b47fa7f01386..3c668ce2f6c204839b7749382c7adc819929173e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ParameterWithValue.java
@@ -1,17 +1,13 @@
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores parameter name and the value.
  * 
  * @author Izabela Adamczyk
  */
-public class ParameterWithValue implements IsSerializable, Serializable
+public class ParameterWithValue implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyType.java
index 3c53a2233729df91c40284724427318ce4951dc3..e22d3d642c444ba47d020a6c1ff1090094489b92 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyType.java
@@ -16,18 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 /**
  * The <i>GWT</i> version of PropertyTypePE.
  * 
  * @author Izabela Adamczyk
  */
-public class PropertyType extends Code<PropertyType> implements IPropertyTypeUpdates,
-        IsSerializable, Serializable
+public class PropertyType extends Code<PropertyType> implements IPropertyTypeUpdates
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyTypeWithVocabulary.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyTypeWithVocabulary.java
index ad7176d7596cf5f5bc6c6469992d1e16bbab4c51..e9b435829978c09133b7200fa8407273451002d1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyTypeWithVocabulary.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/PropertyTypeWithVocabulary.java
@@ -16,22 +16,20 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Set;
 import java.util.TreeSet;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
-public class PropertyTypeWithVocabulary implements IsSerializable, Serializable
+public class PropertyTypeWithVocabulary implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-    
-    private String code; 
+
+    private String code;
+
     private Set<String> vocabularyTerms;
 
     public String getCode()
@@ -53,7 +51,7 @@ public class PropertyTypeWithVocabulary implements IsSerializable, Serializable
     {
         return vocabularyTerms;
     }
-    
+
     public void setTerms(Set<VocabularyTerm> terms)
     {
         this.vocabularyTerms = new TreeSet<String>();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/QueryType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/QueryType.java
index d2356b593ab4bd4eed83ef5ea3832272de0f0a3a..afd3f77a634274740b125849c0d1b5f97a01a1d1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/QueryType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/QueryType.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Type of query.
  * 
  * @author Izabela Adamczyk
  */
-public enum QueryType implements IsSerializable
+public enum QueryType implements ISerializable
 {
 
     GENERIC,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RealNumberFormatingParameters.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RealNumberFormatingParameters.java
index ce02a9041a6ef58bf59d3ad8aa9ee4e0fbae21b8..8064b3d1298ca115d2fbc5c94c443c9a4a07c7d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RealNumberFormatingParameters.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RealNumberFormatingParameters.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Parameters for formating real numbers in grids. It is part of {@link DisplaySettings}.
  * 
  * @author Franz-Josef Elmer
  */
-public class RealNumberFormatingParameters implements Serializable, IsSerializable
+public class RealNumberFormatingParameters implements ISerializable
 {
     private static final long serialVersionUID = 1L;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RelationshipType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RelationshipType.java
index 478f951659a9d3840b09d37360c043404d2baa5d..6b75f863db157cecc85a8e859e1fedf370a12b44 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RelationshipType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RelationshipType.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The <i>GWT</i> version of RelationshipTypePE.
  * 
  * @author Piotr Buczek
  */
-public class RelationshipType extends Code<PropertyType> implements IsSerializable, Serializable
+public class RelationshipType extends Code<PropertyType> implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ReportingPluginType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ReportingPluginType.java
index 9c3b14f59df190e47a387171f901aa429ff90fe0..81e4a3b54d009aa9a5f9276d9bc0253e7bcb552e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ReportingPluginType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ReportingPluginType.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Different kinds of reporting plug-ins that are supported. Also keeps track of which
@@ -24,7 +24,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
-public enum ReportingPluginType implements IsSerializable
+public enum ReportingPluginType implements ISerializable
 {
 
     TABLE_MODEL(ImplementedPluginMethods.CREATE_REPORT),
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
index 69db5426c9bf8e68859df454d7a8ee0b47c52f72..ab0ffeaf0b907cf6983af7ca57a1668056072fd2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/RoleWithHierarchy.java
@@ -21,6 +21,8 @@ import java.util.Set;
 
 import com.google.gwt.user.client.rpc.IsSerializable;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
+
 /**
  * Hierarchical role. Combines {@link RoleCode} with {@link RoleLevel} and a set of
  * {@link RoleWithHierarchy}s that are stronger.
@@ -46,7 +48,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Izabela Adamczyk
  */
-public enum RoleWithHierarchy implements IsSerializable
+public enum RoleWithHierarchy implements ISerializable
 {
     //
     // NOTE: Each role should match the following naming convention: <RoleLevel>_<RoleCode>,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleAttributeSearchFieldKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleAttributeSearchFieldKind.java
index d779e780364100bff6a25895a5ce4dc4d7a6c085..0e60a892cdc60118b5b787de96f558bdee1169c7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleAttributeSearchFieldKind.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleAttributeSearchFieldKind.java
@@ -16,14 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Kinds of fields connected with Sample attributes that can be used in detailed text queries.
  * 
  * @author Piotr Buczek
  */
-public enum SampleAttributeSearchFieldKind implements IsSerializable, IAttributeSearchFieldKind
+public enum SampleAttributeSearchFieldKind implements ISerializable, IAttributeSearchFieldKind
 {
     CODE("Code"),
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleBatchUpdateDetails.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleBatchUpdateDetails.java
index 87a06875a493102f1d32e18ffcb564106182437d..1c26647161f0d301687455f73f169874fbc435df 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleBatchUpdateDetails.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleBatchUpdateDetails.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Set;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Holds information about which sample attributes should be updated.
  * 
  * @author Piotr Buczek
  */
-public class SampleBatchUpdateDetails implements IsSerializable, Serializable
+public class SampleBatchUpdateDetails implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleParentWithDerived.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleParentWithDerived.java
index fe023938f512dc217ed934308caa415162af854b..8c25486acd70d26f045a0435e0e54b3af17c724f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleParentWithDerived.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleParentWithDerived.java
@@ -16,9 +16,6 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
  * A <code>SampleParentWithDerived</code> encapsulates a <code>Sample</code> (the parent) and its
@@ -26,7 +23,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Christian Ribeaud
  */
-public final class SampleParentWithDerived implements IsSerializable, Serializable
+public final class SampleParentWithDerived
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleType.java
index 33586dcf4d71c82819511e2e2b28b50e87cd3256..f112403d264e4866c50d21631057f14c2c389817 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleType.java
@@ -22,16 +22,15 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
 import ch.systemsx.cisd.common.annotation.CollectionMapping;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * A {@link EntityType} extension for <i>Sample Type</i>.
  * 
  * @author Izabela Adamczyk
  */
-public final class SampleType extends EntityType implements IsSerializable
+public final class SampleType extends EntityType implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
@@ -161,7 +160,7 @@ public final class SampleType extends EntityType implements IsSerializable
 
     //
     // Object
-    // 
+    //
 
     @Override
     public boolean equals(Object obj)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleTypePropertyType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleTypePropertyType.java
index ff2dc180c31337d56ee1a9cd6023c734e5202912..09d18dcd8cf9362e9fe6c6f43aea0d9fa18f2395 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleTypePropertyType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleTypePropertyType.java
@@ -16,15 +16,13 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
  * The {@link EntityTypePropertyType} extension for <i>Sample Type</i>.
  * 
  * @author Izabela Adamczyk
  */
-public class SampleTypePropertyType extends EntityTypePropertyType<SampleType> implements
-        IsSerializable
+public class SampleTypePropertyType extends EntityTypePropertyType<SampleType>
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleUpdateResult.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleUpdateResult.java
index 11e9b3773a291778bf2b2d1017a915d7f64cd97f..8c509886749ddf6d8e8d9839aa29ff1d86da90fe 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleUpdateResult.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SampleUpdateResult.java
@@ -16,18 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Stores result of sample update.
  * 
  * @author Piotr Buczek
  */
-public class SampleUpdateResult implements IsSerializable, Serializable
+public class SampleUpdateResult implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchCriteriaConnection.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchCriteriaConnection.java
index dd83a5ac858329367bc469f4664044eddbcd9ecf..1dba1a1dc6f7a4c7dd2829a413646cf3942e55c4 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchCriteriaConnection.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SearchCriteriaConnection.java
@@ -16,12 +16,12 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * @author Izabela Adamczyk
  */
-public enum SearchCriteriaConnection implements IsSerializable
+public enum SearchCriteriaConnection implements ISerializable
 {
     MATCH_ALL, MATCH_ANY
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SortInfo.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SortInfo.java
index e244a9555200727e1ad93c48035fd328b1c73a55..305bdfaa92a1cd743af7403be4ebad5f12a2dc8a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SortInfo.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/SortInfo.java
@@ -19,14 +19,17 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Aggregates sort field and sort direction.
  * 
  * @author Christian Ribeaud
  */
-public final class SortInfo<T> implements IsSerializable
+public final class SortInfo<T> implements ISerializable
 {
+    private static final long serialVersionUID = 1L;
+
     private IColumnDefinition<T> sortField;
 
     private SortDir sortDir = SortDir.NONE;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModel.java
index 3b637e7c30db027ef6fb9979e1d7fc1ba2da7e6a..56d3fb33d2d5a8c701594c1f56c2e13cda4315cf 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModel.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * A table with a list of rows and columns specification. Each column has header and type.
  * 
  * @author Tomasz Pylak
  */
-public class TableModel implements IsSerializable, Serializable
+public class TableModel implements ISerializable
 {
 
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
index 81d3415295ab9b4b86e51f34f8dacef9c5948882..13211a330c2ce385c87fb543b61624f4557ae73e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelColumnHeader.java
@@ -16,18 +16,17 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Column header for {@link TableModel}.
  * 
  * @author Tomasz Pylak
  */
-public class TableModelColumnHeader implements IsSerializable, Serializable
+public class TableModelColumnHeader implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
@@ -42,11 +41,11 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
 
     // if column values contain permIds of certain entities entity kind is stored here
     private EntityKind entityKindOrNull;
-    
+
     private Map<String, String> properties;
 
     private int defaultColumnWidth = 150;
-    
+
     private boolean hidden;
 
     public TableModelColumnHeader()
@@ -80,7 +79,7 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
         // NOTE: id shouldn't contain spaces or some features of columns (e.g. links) will not work
         this.id = id.replaceAll(" ", "_");
     }
-    
+
     public final String getId()
     {
         return id;
@@ -90,7 +89,7 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
     {
         this.index = index;
     }
-    
+
     public int getIndex()
     {
         return index;
@@ -135,7 +134,7 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
     {
         this.entityKindOrNull = entityKind;
     }
-    
+
     public void setProperty(String key, String value)
     {
         if (properties == null)
@@ -144,7 +143,7 @@ public class TableModelColumnHeader implements IsSerializable, Serializable
         }
         properties.put(key, value);
     }
-    
+
     public String tryToGetProperty(String key)
     {
         return properties == null ? null : properties.get(key);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRow.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRow.java
index 8f44f8376c777a8a03c48a172a3c6579e90bcbdd..fd107c0630f19338ac16ab06221b0839dbb1d397 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRow.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRow.java
@@ -16,17 +16,16 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.List;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * The content of one row, without the header specification.
  * 
  * @author Tomasz Pylak
  */
-public class TableModelRow implements IsSerializable, Serializable
+public class TableModelRow implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRowWithObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRowWithObject.java
index 75a5fe72f9e39503c98df8f9bf745b1a2231bd5c..ae571bd25424e32aab0960fd6754ba9762568ffe 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRowWithObject.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TableModelRowWithObject.java
@@ -21,14 +21,13 @@ import java.util.List;
 import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
+// TODO 2010-12-03, Piotr Buczek: change to ISerializable
 public class TableModelRowWithObject<T extends IsSerializable> extends TableModelRow
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
-    
+
     private T objectOrNull;
 
     public TableModelRowWithObject(T objectOrNull, List<ISerializableComparable> values)
@@ -36,17 +35,17 @@ public class TableModelRowWithObject<T extends IsSerializable> extends TableMode
         super(values);
         this.objectOrNull = objectOrNull;
     }
-    
+
     // GWT only
     @SuppressWarnings("unused")
     private TableModelRowWithObject()
     {
-        
+
     }
 
     public T getObjectOrNull()
     {
         return objectOrNull;
     }
-    
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TrackingDataSetCriteria.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TrackingDataSetCriteria.java
index c919cd0ad141884e98e4c147a56986f5b76f1b2a..50749842d337c90167cd633a220c58c5fac60753 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TrackingDataSetCriteria.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TrackingDataSetCriteria.java
@@ -16,9 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Criteria for tracking <i>data sets</i> connected to samples of a particular type with technical
@@ -29,7 +27,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
  * 
  * @author Piotr Buczek
  */
-public class TrackingDataSetCriteria implements IsSerializable, Serializable
+public class TrackingDataSetCriteria implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TypedTableModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TypedTableModel.java
index 7610136b0d13163e958ea1b906763265f463c8a8..c6444364c841f4844d132484380cde3005d18546 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TypedTableModel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/TypedTableModel.java
@@ -23,18 +23,21 @@ import com.google.gwt.user.client.rpc.IsSerializable;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid;
 
 /**
- * Table model for {@link TypedTableGrid} classes. It contains column meta-data as a
- * list of {@link TableModelColumnHeader} instances and the row data as a list of
+ * Table model for {@link TypedTableGrid} classes. It contains column meta-data as a list of
+ * {@link TableModelColumnHeader} instances and the row data as a list of
  * {@link TableModelRowWithObject} instances for row objects of type <code>T</code>.
- *
+ * 
  * @author Franz-Josef Elmer
  */
+// TODO 2010-12-03, Piotr Buczek: change to ISerializable
 public class TypedTableModel<T extends IsSerializable>
 {
     private final List<TableModelColumnHeader> header;
+
     private final List<TableModelRowWithObject<T>> rows;
 
-    public TypedTableModel(List<TableModelColumnHeader> header, List<TableModelRowWithObject<T>> rows)
+    public TypedTableModel(List<TableModelColumnHeader> header,
+            List<TableModelRowWithObject<T>> rows)
     {
         this.header = header;
         this.rows = rows;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermBatchUpdateDetails.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermBatchUpdateDetails.java
index 8f4352d2a92967f9eb6c4c4e6bab77cad9a2ef93..7fcf7fa6bdd6f77d11eac7cb2e78b29f295f9299 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermBatchUpdateDetails.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermBatchUpdateDetails.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Holds information about which vocabulary term attributes should be updated.
  * 
  * @author Piotr Buczek
  */
-public class VocabularyTermBatchUpdateDetails implements IsSerializable, Serializable
+public class VocabularyTermBatchUpdateDetails implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermGridIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermGridIDs.java
index 4df8fdf458d72ae8aeda883aeb1a1e70b9bc8a76..1f04258c1630555ed4eaa9aa07845d6aa4caad20 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermGridIDs.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermGridIDs.java
@@ -16,19 +16,23 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 public class VocabularyTermGridIDs extends CommonGridIDs
 {
+    private static final long serialVersionUID = 1L;
+
     public static final String URL = "URL";
+
     public static final String TERM_TOTAL_USAGE = "TERM_TOTAL_USAGE";
+
     public static final String TERM_FOR_SAMPLES_USAGE = "TERM_FOR_SAMPLES_USAGE";
+
     public static final String TERM_FOR_DATA_SET_USAGE = "TERM_FOR_DATA_SET_USAGE";
+
     public static final String TERM_FOR_EXPERIMENTS_USAGE = "TERM_FOR_EXPERIMENTS_USAGE";
+
     public static final String TERM_FOR_MATERIALS_USAGE = "TERM_FOR_MATERIALS_USAGE";
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermReplacement.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermReplacement.java
index 6bb9731708cab68f4450556c9b14e586f2b75357..7239f2733f3f5a021200b5241bef4228bab0aaaf 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermReplacement.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/VocabularyTermReplacement.java
@@ -16,16 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
  * Wrapper of a {@link VocabularyTerm} and its replacement.
  * 
- * @author     Franz-Josef Elmer
+ * @author Franz-Josef Elmer
  */
-public class VocabularyTermReplacement implements IsSerializable, Serializable
+public class VocabularyTermReplacement implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
index 4247bb28b4c548612e543078d97f91180409b8d5..ff5dc4e5da135357652fd20d6fc9c01ddcc1dca3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java
@@ -16,12 +16,10 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
-import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
-
+import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ViewMode;
 
 /**
@@ -29,23 +27,24 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ViewMode;
  * 
  * @author Izabela Adamczyk
  */
-public class WebClientConfiguration implements IsSerializable, Serializable
+public class WebClientConfiguration implements ISerializable
 {
     private static final long serialVersionUID = ServiceVersionHolder.VERSION;
 
     private Map<String, DetailViewConfiguration> views =
             new HashMap<String, DetailViewConfiguration>();
-    
-    private Map<String, Map<String, String>> technologyProperties = new HashMap<String, Map<String, String>>();
+
+    private Map<String, Map<String, String>> technologyProperties =
+            new HashMap<String, Map<String, String>>();
 
     private ViewMode defaultViewMode;
-    
+
     public String getPropertyOrNull(String technology, String key)
     {
         Map<String, String> properties = technologyProperties.get(technology);
         return properties == null ? null : properties.get(key);
     }
-    
+
     public void addPropertiesForTechnology(String technology, Map<String, String> properties)
     {
         technologyProperties.put(technology, properties);