diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/DatasetReportsLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/DatasetReportsLoader.java
index 4123343ed380955a1cae0a1ce0ad9e84c520afa6..47c46903b3a4e90953928ea9764bb2e69564cf8d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/DatasetReportsLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/DatasetReportsLoader.java
@@ -16,18 +16,11 @@
 
 package ch.systemsx.cisd.openbis.plugin.screening.server.logic;
 
-import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringEscapeUtils;
-
-import ch.systemsx.cisd.bds.hcs.Geometry;
 import ch.systemsx.cisd.openbis.generic.server.business.bo.IExternalDataTable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
-import ch.systemsx.cisd.openbis.plugin.screening.server.IScreeningBusinessObjectFactory;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImageParameters;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader;
 
 /**
  * Loads content of datasets by contacting DSS.
@@ -43,40 +36,4 @@ public class DatasetReportsLoader
                 ScreeningConstants.PLATE_IMAGE_ANALYSIS_REPORT_KEY, datastoreCode, datasets);
     }
 
-    public static List<PlateImageParameters> loadPlateImageParameters(List<String> datasetCodes,
-            IScreeningBusinessObjectFactory boFactory)
-    {
-        List<PlateImageParameters> paramsList = new ArrayList<PlateImageParameters>();
-
-        for (String datasetCode : datasetCodes)
-        {
-            final IHCSDatasetLoader loader = boFactory.createHCSDatasetLoader(datasetCode);
-            paramsList.add(createImageParameters(loader));
-        }
-        return paramsList;
-    }
-
-    // TODO 2010-06-25, Piotr Buczek: move
-    public static PlateImageParameters createImageParameters(IHCSDatasetLoader loader)
-    {
-        final String datasetCode = loader.getDatasetPermId();
-        final Geometry plateGeometry = loader.getPlateGeometry();
-        final Geometry wellGeometry = loader.getWellGeometry();
-        final List<String> channelsNames = loader.getChannelsNames();
-
-        PlateImageParameters params = new PlateImageParameters();
-        params.setDatasetCode(datasetCode);
-        params.setRowsNum(plateGeometry.getRows());
-        params.setColsNum(plateGeometry.getColumns());
-        params.setTileRowsNum(wellGeometry.getRows());
-        params.setTileColsNum(wellGeometry.getColumns());
-        List<String> escapedChannelNames = new ArrayList<String>();
-        for (String name : channelsNames)
-        {
-            escapedChannelNames.add(StringEscapeUtils.escapeCsv(name));
-        }
-        params.setChannelsNames(escapedChannelNames);
-        return params;
-    }
-
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
index 9dc330f9c6dd840b40249f2f971c363efd1a228f..b942f45924f5bbeff7e31f5c1be2e7c02d58e3fc 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
@@ -205,7 +205,7 @@ public class GenePlateLocationsLoader
         {
             final IHCSDatasetLoader loader =
                     businessObjectFactory.createHCSDatasetLoader(datasetCode);
-            imageParameters.add(DatasetReportsLoader.createImageParameters(loader));
+            imageParameters.add(PlateImageParametersFactory.create(loader));
         }
         return asDatasetToParamsMap(imageParameters);
     }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
index e223a89032234e9fc4495534bc264bca00a546d1..08f94ca9fb703d10eddbe2c66fa3049c31b44ad0 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
@@ -274,7 +274,7 @@ public class PlateContentLoader
     {
         final IHCSDatasetLoader loader =
                 businessObjectFactory.createHCSDatasetLoader(dataset.getCode());
-        return DatasetReportsLoader.createImageParameters(loader);
+        return PlateImageParametersFactory.create(loader);
     }
 
     private static List<WellMetadata> createWells(List<Sample> wellSamples)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateImageParametersFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateImageParametersFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..87f34c1e82861b71eabd8cdc6533cb4505b1a8fd
--- /dev/null
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateImageParametersFactory.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2010 ETH Zuerich, CISD
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ch.systemsx.cisd.openbis.plugin.screening.server.logic;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
+import ch.systemsx.cisd.bds.hcs.Geometry;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImageParameters;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader;
+
+/**
+ * Creates {@link PlateImageParameters} using {@link IHCSDatasetLoader}.
+ * 
+ * @author Piotr Buczek
+ */
+public class PlateImageParametersFactory
+{
+    public static PlateImageParameters create(IHCSDatasetLoader loader)
+    {
+        final String datasetCode = loader.getDatasetPermId();
+        final Geometry plateGeometry = loader.getPlateGeometry();
+        final Geometry wellGeometry = loader.getWellGeometry();
+        final List<String> channelsNames = loader.getChannelsNames();
+
+        PlateImageParameters params = new PlateImageParameters();
+        params.setDatasetCode(datasetCode);
+        params.setRowsNum(plateGeometry.getRows());
+        params.setColsNum(plateGeometry.getColumns());
+        params.setTileRowsNum(wellGeometry.getRows());
+        params.setTileColsNum(wellGeometry.getColumns());
+        List<String> escapedChannelNames = new ArrayList<String>();
+        for (String name : channelsNames)
+        {
+            escapedChannelNames.add(StringEscapeUtils.escapeCsv(name));
+        }
+        params.setChannelsNames(escapedChannelNames);
+        return params;
+    }
+}