diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
index 3ac72d2c4bb6f9dbc081c40f3f61a67056a585a6..f917a7efe9f346ac1d1acb5282b14823ae96fc1e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
@@ -462,8 +462,7 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp
             throw UserFailureException.fromTemplate("Sample type with code '%s' does not exist.",
                     sampleTypeCode);
         }
-        getPropertiesBatchManager().manageProperties(sampleTypePE, newSamplesWithType,
-                registratorOrNull);
+        getPropertiesBatchManager().manageProperties(sampleTypePE, newSamples, registratorOrNull);
         getSampleTypeSlaveServerPlugin(sampleTypePE).registerSamples(session, newSamples,
                 registratorOrNull);
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java
index 4773ce1c1174a6c11257d0c2a23cf294914ca87b..5421fb5849e514a75448d7b0f30c40f00de68cd8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/IPropertiesBatchManager.java
@@ -18,9 +18,9 @@ package ch.systemsx.cisd.openbis.generic.server.business;
 
 import java.util.List;
 
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperimentsWithType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewBasicExperiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSamplesWithTypes;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
@@ -33,11 +33,11 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
  */
 public interface IPropertiesBatchManager
 {
-    public void manageProperties(SampleTypePE sampleType, NewSamplesWithTypes newSamplesWithTypes,
+    public void manageProperties(SampleTypePE sampleType, List<NewSample> newSamples,
             PersonPE registrator);
 
     public void manageProperties(ExperimentTypePE experimentType,
-            NewExperimentsWithType experiments, PersonPE registrator);
+            List<? extends NewBasicExperiment> experiments, PersonPE registrator);
 
     public void manageProperties(MaterialTypePE materialType, List<NewMaterial> newMaterials,
             PersonPE registrator);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java
index 30004e9f67f87c986135e4296d80f30a11fb3438..1cefc1673836d08b4e3ddc92be418b8e8e52a7f5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManager.java
@@ -36,9 +36,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IPropertiesBean;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedProperty;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperimentsWithType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewBasicExperiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewMaterial;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSamplesWithTypes;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ValidationException;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePropertyTypePE;
@@ -52,7 +52,7 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyE
 
 /**
  * Handles Managed Properties of batch uploads/updates.
- *
+ * 
  * @author Franz-Josef Elmer
  */
 public class PropertiesBatchManager implements IPropertiesBatchManager
@@ -67,27 +67,24 @@ public class PropertiesBatchManager implements IPropertiesBatchManager
 
     private final Logger notificationLog = LogFactory.getLogger(LogCategory.NOTIFY, getClass());
 
-    
-    
-    public void manageProperties(SampleTypePE sampleType, NewSamplesWithTypes newSamplesWithTypes,
+    public void manageProperties(SampleTypePE sampleType, List<NewSample> samples,
             PersonPE registrator)
     {
         Set<? extends EntityTypePropertyTypePE> sampleTypePropertyTypes =
                 sampleType.getSampleTypePropertyTypes();
-    
-        managePropertiesBeans(newSamplesWithTypes.getNewSamples(), sampleTypePropertyTypes,
-                registrator);
+
+        managePropertiesBeans(samples, sampleTypePropertyTypes, registrator);
     }
-    
+
     public void manageProperties(ExperimentTypePE experimentType,
-            NewExperimentsWithType experiments, PersonPE registrator)
+            List<? extends NewBasicExperiment> experiments, PersonPE registrator)
     {
         Set<? extends EntityTypePropertyTypePE> entityTypePropertyTypes =
                 experimentType.getExperimentTypePropertyTypes();
 
-        managePropertiesBeans(experiments.getNewExperiments(), entityTypePropertyTypes, registrator);
+        managePropertiesBeans(experiments, entityTypePropertyTypes, registrator);
     }
-    
+
     public void manageProperties(MaterialTypePE materialType, List<NewMaterial> newMaterials,
             PersonPE registrator)
     {
@@ -99,9 +96,9 @@ public class PropertiesBatchManager implements IPropertiesBatchManager
     private void managePropertiesBeans(List<? extends IPropertiesBean> propertiesBeans,
             Set<? extends EntityTypePropertyTypePE> entityTypePropertyTypes, PersonPE registrator)
     {
-        Map<String, EvaluationContext> contexts =
-                createEvaluationContexts(entityTypePropertyTypes);
-        PropertiesBatchEvaluationErrors errors = new PropertiesBatchEvaluationErrors(registrator, propertiesBeans.size());
+        Map<String, EvaluationContext> contexts = createEvaluationContexts(entityTypePropertyTypes);
+        PropertiesBatchEvaluationErrors errors =
+                new PropertiesBatchEvaluationErrors(registrator, propertiesBeans.size());
 
         int rowNumber = 0;
         for (IPropertiesBean propertiesBean : propertiesBeans)
@@ -160,8 +157,8 @@ public class PropertiesBatchManager implements IPropertiesBatchManager
         EntityProperty entityProperty = createNewEntityProperty(code);
         if (evalContext == null)
         {
-            ManagedPropertyEvaluator.assertBatchColumnNames(code,
-                    Collections.<String> emptyList(), bindings);
+            ManagedPropertyEvaluator.assertBatchColumnNames(code, Collections.<String> emptyList(),
+                    bindings);
             entityProperty.setValue(bindings.get(""));
         } else
         {
@@ -229,4 +226,4 @@ public class PropertiesBatchManager implements IPropertiesBatchManager
         }
         return result;
     }
-}   
+}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
index e57769834d9bf2c2fa825f526d5f252de1e93b24..7ec512d000fa79cd9753237a07be399a796ddb29 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java
@@ -425,7 +425,7 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen
             throw UserFailureException.fromTemplate("Sample type with code '%s' does not exist.",
                     sampleTypeCode);
         }
-        getPropertiesBatchManager().manageProperties(sampleTypePE, updatedSamplesWithType,
+        getPropertiesBatchManager().manageProperties(sampleTypePE, updatedSamples,
                 session.tryGetPerson());
         getSampleTypeSlaveServerPlugin(sampleTypePE).updateSamples(session,
                 convertSamples(updatedSamples));
@@ -839,7 +839,7 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen
             throw UserFailureException.fromTemplate(
                     "Experiment type with code '%s' does not exist.", experimentTypePE);
         }
-        getPropertiesBatchManager().manageProperties(experimentTypePE, experiments,
+        getPropertiesBatchManager().manageProperties(experimentTypePE, newExperiments,
                 session.tryGetPerson());
         BatchOperationExecutor.executeInBatches(new ExperimentBatchRegistration(
                 businessObjectFactory.createExperimentTable(session), newExperiments,
@@ -874,6 +874,8 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen
             throw UserFailureException.fromTemplate(
                     "Experiment type with code '%s' does not exist.", experimentTypePE);
         }
+        getPropertiesBatchManager().manageProperties(experimentTypePE, newExperiments,
+                session.tryGetPerson());
         BatchOperationExecutor.executeInBatches(new ExperimentBatchUpdate(businessObjectFactory
                 .createExperimentTable(session), convertExperiments(newExperiments),
                 experimentTypePE));
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManagerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManagerTest.java
index 6ed9c440ca813aa238323fb016f8bc7291e317ba..164464cf60f5fc2d9313924407fe7feee4e60de2 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManagerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/PropertiesBatchManagerTest.java
@@ -25,9 +25,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IPropertiesBean;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewBasicExperiment;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewExperimentsWithType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSamplesWithTypes;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ScriptType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.PropertyBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.dto.builders.ExperimentTypePEBuilder;
@@ -39,8 +37,12 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.builders.SampleTypePEBuilder;
 public class PropertiesBatchManagerTest extends AssertJUnit
 {
     private static final String MANAGED_SUBCOLUMNS = "MANAGED_SUBCOLUMNS";
-    private static final String MANAGED_NO_SUBCOLUMNS_BUT_UPDATE = "MANAGED-NO-SUBCOLUMNS-BUT-UPDATE";
+
+    private static final String MANAGED_NO_SUBCOLUMNS_BUT_UPDATE =
+            "MANAGED-NO-SUBCOLUMNS-BUT-UPDATE";
+
     private static final String MANAGED_NO_SUBCOLUMNS_NO_UPDATE = "MANAGED-NO-SUBCOLUMNS";
+
     private static final String UN_MANAGED = "UN-MANAGED";
 
     @Test
@@ -49,9 +51,10 @@ public class PropertiesBatchManagerTest extends AssertJUnit
         ExperimentTypePEBuilder builder = new ExperimentTypePEBuilder();
         builder.assign(UN_MANAGED);
         builder.assign(MANAGED_NO_SUBCOLUMNS_NO_UPDATE).script(ScriptType.MANAGED_PROPERTY, "");
-        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(ScriptType.MANAGED_PROPERTY,
-                "def updateFromBatchInput(columnValues):\n" +
-                "  property.setValue(columnValues.get('') + ' alpha')");
+        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(
+                ScriptType.MANAGED_PROPERTY,
+                "def updateFromBatchInput(columnValues):\n"
+                        + "  property.setValue(columnValues.get('') + ' alpha')");
         builder.assign(MANAGED_SUBCOLUMNS).script(
                 ScriptType.MANAGED_PROPERTY,
                 "def batchColumnNames():\n  return ['1', '2']\n"
@@ -66,33 +69,33 @@ public class PropertiesBatchManagerTest extends AssertJUnit
         PropertyBuilder p4 = new PropertyBuilder(MANAGED_SUBCOLUMNS + ":1").value("ab");
         PropertyBuilder p5 = new PropertyBuilder(MANAGED_SUBCOLUMNS + ":2").value("12");
         addProperties(e2, p3, p4, p5);
-        NewExperimentsWithType experiments = new NewExperimentsWithType("T", Arrays.asList(e1, e2));
-        
-        new PropertiesBatchManager().manageProperties(builder.getExperimentTypePE(), experiments,
-                null);
-        
+
+        new PropertiesBatchManager().manageProperties(builder.getExperimentTypePE(),
+                Arrays.asList(e1, e2), null);
+
         assertProperties("UN-MANAGED:hello, MANAGED-NO-SUBCOLUMNS:hi", e1);
         assertProperties("MANAGED-NO-SUBCOLUMNS-BUT-UPDATE:hi alpha, MANAGED_SUBCOLUMNS:ab12", e2);
     }
-    
+
     @Test
     public void testScriptErrorWhenExecutingUpdateFromBatchInput()
     {
         SampleTypePEBuilder builder = new SampleTypePEBuilder();
-        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(ScriptType.MANAGED_PROPERTY,
-                "def updateFromBatchInput(columnValues):\n" +
-                "  property.setValue(str(int(columnValues.get('')) + 42))");
+        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(
+                ScriptType.MANAGED_PROPERTY,
+                "def updateFromBatchInput(columnValues):\n"
+                        + "  property.setValue(str(int(columnValues.get('')) + 42))");
         NewSample s1 = new NewSample();
         PropertyBuilder p1 = new PropertyBuilder(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).value("1");
         addProperties(s1, p1);
         NewSample s2 = new NewSample();
         PropertyBuilder p2 = new PropertyBuilder(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).value("two");
         addProperties(s2, p2);
-        NewSamplesWithTypes samples = new NewSamplesWithTypes(null, Arrays.asList(s1, s2));
-        
+
         try
         {
-            new PropertiesBatchManager().manageProperties(builder.getSampleType(), samples, null);
+            new PropertiesBatchManager().manageProperties(builder.getSampleType(),
+                    Arrays.asList(s1, s2), null);
         } catch (UserFailureException ufe)
         {
             assertEquals(
@@ -103,34 +106,34 @@ public class PropertiesBatchManagerTest extends AssertJUnit
                             + "A detailed error report has been sent to your system administrator.",
                     ufe.getMessage());
         }
-        
+
         assertProperties("MANAGED-NO-SUBCOLUMNS-BUT-UPDATE:43", s1);
     }
-    
+
     @Test
     public void testScriptThrowingValidationException()
     {
         ExperimentTypePEBuilder builder = new ExperimentTypePEBuilder();
-        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(ScriptType.MANAGED_PROPERTY,
-                "def updateFromBatchInput(columnValues):\n" +
-        "  raise ValidationException('Oops!')");
+        builder.assign(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).script(
+                ScriptType.MANAGED_PROPERTY,
+                "def updateFromBatchInput(columnValues):\n"
+                        + "  raise ValidationException('Oops!')");
         NewBasicExperiment e1 = new NewBasicExperiment();
         PropertyBuilder p1 = new PropertyBuilder(MANAGED_NO_SUBCOLUMNS_BUT_UPDATE).value("hello");
         addProperties(e1, p1);
-        NewExperimentsWithType experiments = new NewExperimentsWithType("T", Arrays.asList(e1));
-        
+
         try
         {
             new PropertiesBatchManager().manageProperties(builder.getExperimentTypePE(),
-                    experiments, null);
+                    Arrays.asList(e1), null);
             fail("UserFailureException expected");
         } catch (UserFailureException ex)
         {
             assertEquals("Error in row 1: Oops!", ex.getMessage());
         }
-        
+
     }
-    
+
     @Test
     public void testSubColumnsButNoScript()
     {
@@ -139,19 +142,18 @@ public class PropertiesBatchManagerTest extends AssertJUnit
         NewBasicExperiment e1 = new NewBasicExperiment();
         PropertyBuilder p1 = new PropertyBuilder(UN_MANAGED + ":1").value("hello");
         addProperties(e1, p1);
-        NewExperimentsWithType experiments = new NewExperimentsWithType("T", Arrays.asList(e1));
-        
+
         try
         {
             new PropertiesBatchManager().manageProperties(builder.getExperimentTypePE(),
-                    experiments, null);
+                    Arrays.asList(e1), null);
             fail("UserFailureException expected");
         } catch (UserFailureException ex)
         {
             assertEquals("No subcolumns expected for property 'UN-MANAGED': [1]", ex.getMessage());
         }
     }
-    
+
     private void assertProperties(String expectedProperties, IPropertiesBean propertiesBean)
     {
         StringBuilder builder = new StringBuilder();
@@ -167,7 +169,7 @@ public class PropertiesBatchManagerTest extends AssertJUnit
         }
         assertEquals(expectedProperties, builder.toString());
     }
-    
+
     private void addProperties(IPropertiesBean propertiesBean, PropertyBuilder... builders)
     {
         IEntityProperty[] properties = new IEntityProperty[builders.length];
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java
index b08783e5049ae670735ef8c1141202a510325e49..891e6d18819a4f3e8c6b65f1f016f039f793d347 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java
@@ -280,8 +280,7 @@ public final class GenericServerTest extends AbstractServerTestCase
 
                     one(sampleTypeSlaveServerPlugin).registerSamples(SESSION, newSamples, null);
 
-                    one(propertiesBatchManager).manageProperties(sampleTypePE, newSamplesWithType,
-                            null);
+                    one(propertiesBatchManager).manageProperties(sampleTypePE, newSamples, null);
                 }
             });
         createServer().registerOrUpdateSamples(SESSION_TOKEN, samplesWithTypes);
@@ -310,8 +309,7 @@ public final class GenericServerTest extends AbstractServerTestCase
 
                     one(sampleTypeSlaveServerPlugin).registerSamples(SESSION, newSamples, null);
 
-                    one(propertiesBatchManager).manageProperties(sampleTypePE, newSamplesWithType,
-                            null);
+                    one(propertiesBatchManager).manageProperties(sampleTypePE, newSamples, null);
                 }
             });
         createServer().registerSamples(SESSION_TOKEN, samplesWithTypes);
@@ -840,8 +838,7 @@ public final class GenericServerTest extends AbstractServerTestCase
         context.checking(new Expectations()
             {
                 {
-                    one(propertiesBatchManager).manageProperties(experimentTypePE, experiments,
-                            null);
+                    one(propertiesBatchManager).manageProperties(experimentTypePE, entities, null);
                     one(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT);
                     will(returnValue(entityTypeDAO));
                     one(entityTypeDAO).tryToFindEntityTypeByCode(EXPERIMENT_TYPE);