diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
index 5b9a8d4aa2650df3a36f8758e7ea1de56d8f0512..b591a59b43ae96265e6f42d77a3c0c090f99c931 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
@@ -234,12 +234,17 @@ public class JythonTopLevelDataSetHandler extends AbstractOmniscientTopLevelData
         {
             DataSetRegistrationDetails<T> registrationDetails = new DataSetRegistrationDetails<T>();
             T dataSetInfo = createDataSetInformation();
-            dataSetInfo.setInstanceCode(registratorState.getHomeDatabaseInstance().getCode());
-            dataSetInfo.setInstanceUUID(registratorState.getHomeDatabaseInstance().getUuid());
+            setDatabaseInstance(dataSetInfo);
             registrationDetails.setDataSetInformation(dataSetInfo);
             return registrationDetails;
         }
 
+        protected final void setDatabaseInstance(T dataSetInfo)
+        {
+            dataSetInfo.setInstanceCode(registratorState.getHomeDatabaseInstance().getCode());
+            dataSetInfo.setInstanceUUID(registratorState.getHomeDatabaseInstance().getUuid());
+        }
+        
         /**
          * Adaptor for the IDataSetRegistrationDetailsFactory interface.
          */
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java
index 6d0a75eef11cbb9d6e2d1a44ee00214e7b660c4d..429b01155590c68b480ae948b416a838360bb024 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java
@@ -9,8 +9,8 @@ import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails;
 import ch.systemsx.cisd.etlserver.registrator.IDataSetRegistrationDetailsFactory;
 import ch.systemsx.cisd.etlserver.registrator.JythonTopLevelDataSetHandler;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSet;
+import ch.systemsx.cisd.openbis.dss.etl.dto.api.v1.BasicDataSetInformation;
 import ch.systemsx.cisd.openbis.dss.etl.dto.api.v1.ImageDataSetInformation;
-import ch.systemsx.cisd.openbis.dss.etl.registrator.api.v1.impl.ImageDataSet;
 
 /**
  * Jython dropbox for HCS and Microscopy image datasets.
@@ -28,12 +28,14 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler
      * Create a screening specific factory available to the python script.
      */
     @Override
-    protected IDataSetRegistrationDetailsFactory<ImageDataSetInformation> createObjectFactory(PythonInterpreter interpreter)
+    protected IDataSetRegistrationDetailsFactory<BasicDataSetInformation> createObjectFactory(
+            PythonInterpreter interpreter)
     {
         return new JythonPlateDatasetFactory(getRegistratorState());
     }
 
-    public static class JythonPlateDatasetFactory extends JythonObjectFactory<ImageDataSetInformation>
+    public static class JythonPlateDatasetFactory extends
+            JythonObjectFactory<BasicDataSetInformation>
     {
         public JythonPlateDatasetFactory(OmniscientTopLevelDataSetRegistratorState registratorState)
         {
@@ -41,17 +43,43 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler
         }
 
         @Override
-        public DataSet<ImageDataSetInformation> createDataSet(
-                DataSetRegistrationDetails<ImageDataSetInformation> registrationDetails,
+        public DataSet<BasicDataSetInformation> createDataSet(
+                DataSetRegistrationDetails<BasicDataSetInformation> registrationDetails,
                 File stagingFile)
         {
-            return new ImageDataSet(registrationDetails, stagingFile);
+            return new DataSet<BasicDataSetInformation>(registrationDetails, stagingFile);
         }
 
         @Override
-        protected ImageDataSetInformation createDataSetInformation()
+        protected BasicDataSetInformation createDataSetInformation()
         {
-            return new ImageDataSetInformation();
+            return new BasicDataSetInformation();
+        }
+
+        /**
+         * Factory method that creates a new registration details object for image datasets.
+         */
+        public DataSetRegistrationDetails<ImageDataSetInformation> createImageRegistrationDetails()
+        {
+            DataSetRegistrationDetails<ImageDataSetInformation> registrationDetails =
+                    new DataSetRegistrationDetails<ImageDataSetInformation>();
+            ImageDataSetInformation dataSetInfo = new ImageDataSetInformation();
+            setDatabaseInstance(dataSetInfo);
+            registrationDetails.setDataSetInformation(dataSetInfo);
+            return registrationDetails;
+        }
+
+        /**
+         * Factory method that creates a new registration details object for non-image datasets.
+         */
+        public DataSetRegistrationDetails<BasicDataSetInformation> createBasicRegistrationDetails()
+        {
+            DataSetRegistrationDetails<BasicDataSetInformation> registrationDetails =
+                    new DataSetRegistrationDetails<BasicDataSetInformation>();
+            BasicDataSetInformation dataSetInfo = new BasicDataSetInformation();
+            setDatabaseInstance(dataSetInfo);
+            registrationDetails.setDataSetInformation(dataSetInfo);
+            return registrationDetails;
         }
     }
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/registrator/api/v1/impl/ImageDataSet.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/registrator/api/v1/impl/ImageDataSet.java
index 31837355dc6d76abcbc48ede067f1853b8528f5d..6742975c87b7c12f4579d92d785d67c8ffecddf2 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/registrator/api/v1/impl/ImageDataSet.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/registrator/api/v1/impl/ImageDataSet.java
@@ -25,22 +25,23 @@ import ch.systemsx.cisd.openbis.dss.etl.registrator.api.v1.IImageDataSet;
 
 /**
  * Implementation of an {@link IImageDataSet} based on {@link DataSet}.
- *
+ * 
  * @author Franz-Josef Elmer
  */
+// TODO 2011-02-02, Tomasz Pylak: We do not use it, is it really needed? For sure it's not complete.
 public class ImageDataSet extends DataSet<ImageDataSetInformation> implements IImageDataSet
 {
 
-    public ImageDataSet(
-            DataSetRegistrationDetails<ImageDataSetInformation> registrationDetails,
+    public ImageDataSet(DataSetRegistrationDetails<ImageDataSetInformation> registrationDetails,
             File dataSetFolder)
     {
         super(registrationDetails, dataSetFolder);
     }
-    
+
     public void setTileGeometry(int numberOfRows, int numberOfColumns)
     {
-        ImageDataSetInformation dataSetInformation = getRegistrationDetails().getDataSetInformation();
+        ImageDataSetInformation dataSetInformation =
+                getRegistrationDetails().getDataSetInformation();
         dataSetInformation.setTileGeometry(numberOfRows, numberOfColumns);
     }
 }