diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
index 0b5afdb9e524b2f5a5adb0759f784aaac54fbffa..88b1f50cc161aac9122ec749c8b427d500086505 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IDataSetRegistrationTransaction.java
@@ -28,7 +28,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmut
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISearchService;
@@ -244,28 +243,14 @@ public interface IDataSetRegistrationTransaction
      * 
      * @return metaproject with given name for current user.
      */
-    IMetaprojectImmutable getMetaproject(String name);
+    IMetaproject getMetaproject(String name);
 
     /**
      * Only allowed when the user is not available.
      * 
      * @return metaproject with given name for specified user.
      */
-    IMetaprojectImmutable getMetaproject(String name, String ownerId);
-
-    /**
-     * Only allowed when the user is available.
-     * 
-     * @return metaproject with given name for current user.
-     */
-    IMetaproject getMetaprojectForUpdate(String name);
-
-    /**
-     * Only allowed when the user is not available.
-     * 
-     * @return metaproject with given name for specified user.
-     */
-    IMetaproject getMetaprojectForUpdate(String name, String ownerId);
+    IMetaproject getMetaproject(String name, String ownerId);
 
     // File operations -- The source and destination paths are local to the incoming data set folder
     // or incoming directory if the data set is just one file
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IMetaproject.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IMetaproject.java
index 5720631cda3932bb91797d374e74d5253ef9f19e..80eba1db3303777c6de935475842f1fca4417297 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IMetaproject.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/IMetaproject.java
@@ -27,9 +27,19 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectI
 public interface IMetaproject extends IMetaprojectImmutable
 {
 
+    /**
+     * set this metaproject description
+     */
     void setDescription(String description);
 
+    /**
+     * add assignments to this metaproject
+     */
     void addEntity(IMetaprojectContent entity);
 
+    /**
+     * remove assigned entity from this metaproject
+     */
     void removeEntity(IMetaprojectContent entity);
+
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/AbstractTransactionState.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/AbstractTransactionState.java
index 6b21fa16d97671021c9849de978f067c6d2d148a..914d566f3a742878938f97220465945b84d43d21 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/AbstractTransactionState.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/AbstractTransactionState.java
@@ -52,7 +52,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.AtomicEntityOperationDetails;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
@@ -701,19 +700,12 @@ public abstract class AbstractTransactionState<T extends DataSetInformation>
             return metaproject;
         }
 
-        public IMetaprojectImmutable getMetaproject(String name, String ownerId)
-        {
-            ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject dto =
-                    openBisService.tryGetMetaproject(name, ownerId);
-            return new MetaprojectImmutable(dto);
-        }
-
-        public IMetaproject getMetaprojectForUpdate(String name, String ownerId)
+        public Metaproject getMetaproject(String name, String ownerId)
         {
             ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject dto =
                     openBisService.tryGetMetaproject(name, ownerId);
 
-            IMetaproject metaproject = findExistingMetaprojectLocally(dto);
+            Metaproject metaproject = findExistingMetaprojectLocally(dto);
 
             if (metaproject == null)
             {
@@ -723,7 +715,8 @@ public abstract class AbstractTransactionState<T extends DataSetInformation>
             return metaproject;
         }
 
-        public IMetaproject findExistingMetaprojectLocally(ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject dto)
+        public Metaproject findExistingMetaprojectLocally(
+                ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject dto)
         {
             for (Metaproject m : metaprojectsToBeUpdated)
             {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
index acd0933cd912c43bd2d480ec5a308df7e30905dc..af9b6c23b360d941379d4e049a959cb0e4469f82 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java
@@ -66,7 +66,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmut
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISearchService;
@@ -466,7 +465,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
     }
 
     @Override
-    public IMetaprojectImmutable getMetaproject(String name)
+    public IMetaproject getMetaproject(String name)
     {
         if (getUserId() == null)
         {
@@ -477,7 +476,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
     }
 
     @Override
-    public IMetaprojectImmutable getMetaproject(String name, String ownerId)
+    public IMetaproject getMetaproject(String name, String ownerId)
     {
         if (getUserId() != null && false == getUserId().equals(ownerId))
         {
@@ -487,28 +486,6 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem
         return getStateAsLiveState().getMetaproject(name, ownerId);
     }
 
-    @Override
-    public IMetaproject getMetaprojectForUpdate(String name)
-    {
-        if (getUserId() == null)
-        {
-            throw new IllegalArgumentException(
-                    "Cannot get a metaproject when user is not available nor specified. ");
-        }
-        return getStateAsLiveState().getMetaprojectForUpdate(name, getUserId());
-    }
-
-    @Override
-    public IMetaproject getMetaprojectForUpdate(String name, String ownerId)
-    {
-        if (getUserId() != null && false == getUserId().equals(ownerId))
-        {
-            throw new IllegalArgumentException(
-                    "Cannot get metaproject for different user then the current one.");
-        }
-        return getStateAsLiveState().getMetaprojectForUpdate(name, ownerId);
-    }
-
     @Override
     public String moveFile(String src, IDataSet dst)
     {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/Metaproject.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/Metaproject.java
index 51218a723b905717f231fea17a3f06c28665b0ec..0b152a5f1453ad263c81bcf00868fff77c9bdd2b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/Metaproject.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/Metaproject.java
@@ -81,12 +81,12 @@ public class Metaproject extends MetaprojectImmutable implements IMetaproject
         removedEntities.add(id);
     }
 
-    public Set<IObjectId> getAddedEntities()
+    Set<IObjectId> getAddedEntities()
     {
         return addedEntities;
     }
 
-    public Set<IObjectId> getRemovedEntities()
+    Set<IObjectId> getRemovedEntities()
     {
         return removedEntities;
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
index 74f6d17cfc0666d828e032e9a29be977a95fe7d4..f48be0cdeb155516bd938897d8adf7aa4576d7b6 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/DataSetRegistrationTransactionV2Delegate.java
@@ -37,7 +37,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmut
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISearchService;
@@ -213,25 +212,13 @@ public class DataSetRegistrationTransactionV2Delegate implements IDataSetRegistr
     }
 
     @Override
-    public IMetaprojectImmutable getMetaproject(String name)
+    public IMetaproject getMetaproject(String name)
     {
         return transaction.getMetaproject(name);
     }
 
     @Override
-    public IMetaproject getMetaprojectForUpdate(String name)
-    {
-        return transaction.getMetaprojectForUpdate(name);
-    }
-
-    @Override
-    public IMetaproject getMetaprojectForUpdate(String name, String ownerId)
-    {
-        return transaction.getMetaprojectForUpdate(name, ownerId);
-    }
-
-    @Override
-    public IMetaprojectImmutable getMetaproject(String name, String ownerId)
+    public IMetaproject getMetaproject(String name, String ownerId)
     {
         return transaction.getMetaproject(name, ownerId);
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
index b845c29d08ef57798cd835b5bec928333d5153c6..6e32cf2f1017c6ff7e5e35834c4e883ae5226cab 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/IDataSetRegistrationTransactionV2.java
@@ -36,7 +36,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IDataSetImmut
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExternalDataManagementSystemImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMaterialImmutable;
-import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IMetaprojectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IProjectImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISearchService;
@@ -232,28 +231,14 @@ public interface IDataSetRegistrationTransactionV2
      * 
      * @return Read-only metaproject with given name for current user.
      */
-    IMetaprojectImmutable getMetaproject(String name);
+    IMetaproject getMetaproject(String name);
 
     /**
      * Only allowed when the user is not available.
      * 
      * @return Read-only metaproject with given name for specified user.
      */
-    IMetaprojectImmutable getMetaproject(String name, String ownerId);
-
-    /**
-     * Only allowed when the user is available.
-     * 
-     * @return metaproject with given name for current user.
-     */
-    IMetaproject getMetaprojectForUpdate(String name);
-
-    /**
-     * Only allowed when the user is not available.
-     * 
-     * @return metaproject with given name for specified user.
-     */
-    IMetaproject getMetaprojectForUpdate(String name, String ownerId);
+    IMetaproject getMetaproject(String name, String ownerId);
 
     // File operations -- The source and destination paths are local to the incoming data set folder
     // or incoming directory if the data set is just one file