diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java
index b480205be9ebb191186c105f55421591192feeb2..0c1fa31e4b6536510a12c05c1ce9359faced69df 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java
@@ -31,7 +31,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.LibraryRegistrationInfo;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
@@ -103,7 +103,7 @@ public interface IScreeningClientService extends IClientService
             throws UserFailureException;
 
     /** Lists all images for a given well in the given dataset */
-    public List<ImageChannelStackReference> listImageChannelStacks(String datasetCode,
+    public List<WellImageChannelStack> listImageChannelStacks(String datasetCode,
             String datastoreCode, WellLocation wellLocation);
 
     /**
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java
index ced06948de770a2198498b77f2492192550575d4..1c7f95116cc0004463129777a5786205e346c55e 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java
@@ -31,7 +31,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.LibraryRegistrationInfo;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
@@ -92,7 +92,7 @@ public interface IScreeningClientServiceAsync extends IClientServiceAsync
      */
     public void listImageChannelStacks(String datasetCode, String datastoreCode,
             WellLocation wellLocation,
-            AsyncCallback<List<ImageChannelStackReference>> abstractAsyncCallback);
+            AsyncCallback<List<WellImageChannelStack>> abstractAsyncCallback);
 
     /**
      * @see IScreeningClientService#registerLibrary(LibraryRegistrationInfo)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageUrlUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageUrlUtils.java
index 199e3682f3f085372a3e6aa112ea9af7e01a4ab8..20ec6292c8778d48008364715b5ee7eaa05b5061 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageUrlUtils.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ImageUrlUtils.java
@@ -22,7 +22,7 @@ import com.extjs.gxt.ui.client.widget.LayoutContainer;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimpleImageHtmlRenderer;
 import ch.systemsx.cisd.openbis.generic.shared.basic.URLMethodWithParameters;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants;
 
 /**
@@ -50,7 +50,7 @@ public class ImageUrlUtils
      * container.
      */
     public static void addImageUrlWidget(LayoutContainer container, String sessionId,
-            WellImages images, String channel, ImageChannelStackReference channelStackRef,
+            WellImages images, String channel, WellImageChannelStack channelStackRef,
             int imageWidth, int imageHeight)
     {
         String imageURL =
@@ -61,7 +61,7 @@ public class ImageUrlUtils
 
     /** generates URL of an image on Data Store server */
     private static String createDatastoreImageUrl(String sessionID, WellImages images,
-            String channel, ImageChannelStackReference channelStackRef, int width, int height)
+            String channel, WellImageChannelStack channelStackRef, int width, int height)
     {
         URLMethodWithParameters methodWithParameters =
                 createBasicImageURL(sessionID, images, channel);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateMaterialReviewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateMaterialReviewer.java
index 12494f2642fb0df9821b739aa119b56b0de78206..e7c120188283cacb1015f7607d3779b2e9a4b58a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateMaterialReviewer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateMaterialReviewer.java
@@ -378,7 +378,11 @@ public class PlateMaterialReviewer extends AbstractSimpleBrowserGrid<WellContent
                     {
                         return null;
                     }
+                    PlateImageParameters imageParameters = images.getImageParameters();
+                    if (imageParameters.isMultidimensional())
+                    {
 
+                    }
                     final IChanneledViewerFactory viewerFactory = new IChanneledViewerFactory()
                         {
                             public Widget create(String channel)
@@ -391,7 +395,6 @@ public class PlateMaterialReviewer extends AbstractSimpleBrowserGrid<WellContent
                             new ChannelWidgetWithListener(viewerFactory);
                     widgetWithListener.update(channelChooser.getSimpleValue());
 
-                    PlateImageParameters imageParameters = images.getImageParameters();
                     channelChooser.addNamesAndListener(imageParameters.getChannelsNames(),
                             widgetWithListener.asSelectionChangedListener());
                     return widgetWithListener.asWidget();
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
index c826f64c66976b749eaa2f4950b3b6b43465d7b9..9b342f4c27ffc8e722aae09a8986f0af11a43a6a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentDialog.java
@@ -43,7 +43,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.S
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.ChannelChooser.DefaultChannelState;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.ChannelChooser.IChanneledViewerFactory;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetImagesReference;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation;
@@ -170,10 +170,10 @@ public class WellContentDialog extends Dialog
     {
         viewContext.getService().listImageChannelStacks(images.getDatasetCode(),
                 images.getDatastoreCode(), images.getWellLocation(),
-                new AbstractAsyncCallback<List<ImageChannelStackReference>>(viewContext)
+                new AbstractAsyncCallback<List<WellImageChannelStack>>(viewContext)
                     {
                         @Override
-                        protected void process(List<ImageChannelStackReference> channelStackImages)
+                        protected void process(List<WellImageChannelStack> channelStackImages)
                         {
                             LayoutContainer imageViewer =
                                     createTimepointImageViewer(channelStackImages, images,
@@ -185,7 +185,7 @@ public class WellContentDialog extends Dialog
     }
 
     private static LayoutContainer createTimepointImageViewer(
-            final List<ImageChannelStackReference> channelStackImages, final WellImages images,
+            final List<WellImageChannelStack> channelStackImages, final WellImages images,
             final DefaultChannelState channelState, IViewContext<?> viewContext)
     {
         final String sessionId = getSessionId(viewContext);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentTimepointsViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentTimepointsViewer.java
index 1e584ed3d8168e0aeaf393ef94254b4a6a761382..1f26e3f31275d1d81514a01168a71c07ac094588 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentTimepointsViewer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/WellContentTimepointsViewer.java
@@ -30,7 +30,7 @@ import com.extjs.gxt.ui.client.widget.LayoutContainer;
 import com.extjs.gxt.ui.client.widget.Slider;
 import com.extjs.gxt.ui.client.widget.layout.TableLayout;
 
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 
 /**
  * Allows to view timepoint images of the well.
@@ -41,10 +41,10 @@ class WellContentTimepointsViewer
 {
 
     public static LayoutContainer createTilesGrid(String sessionId,
-            List<ImageChannelStackReference> channelStackImages, WellImages images, String channel,
+            List<WellImageChannelStack> channelStackImages, WellImages images, String channel,
             int imageWidth, int imageHeight)
     {
-        Map<Float, List<ImageChannelStackReference>> channelStackImagesByTimepoint =
+        Map<Float, List<WellImageChannelStack>> channelStackImagesByTimepoint =
                 groupImagesByTimepoint(channelStackImages);
 
         List<LayoutContainer> frames =
@@ -82,15 +82,15 @@ class WellContentTimepointsViewer
     }
 
     private static List<LayoutContainer> createTimepointFrames(
-            Map<Float, List<ImageChannelStackReference>> channelStackImagesByTimepoint,
+            Map<Float, List<WellImageChannelStack>> channelStackImagesByTimepoint,
             WellImages images, String channel, String sessionId, int imageWidth, int imageHeight)
     {
         final List<LayoutContainer> frames = new ArrayList<LayoutContainer>();
         int counter = 0;
-        for (Entry<Float, List<ImageChannelStackReference>> entry : channelStackImagesByTimepoint
+        for (Entry<Float, List<WellImageChannelStack>> entry : channelStackImagesByTimepoint
                 .entrySet())
         {
-            List<ImageChannelStackReference> imageReferences = entry.getValue();
+            List<WellImageChannelStack> imageReferences = entry.getValue();
             final LayoutContainer container =
                     createTilesGridForTimepoint(imageReferences, images, channel, sessionId,
                             imageWidth, imageHeight);
@@ -113,19 +113,19 @@ class WellContentTimepointsViewer
     }
 
     private static LayoutContainer createTilesGridForTimepoint(
-            List<ImageChannelStackReference> channelStackReferences, WellImages images,
+            List<WellImageChannelStack> channelStackReferences, WellImages images,
             String channel, String sessionId, int imageWidth, int imageHeight)
     {
         final LayoutContainer container =
                 new LayoutContainer(new TableLayout(images.getTileColsNum()));
 
-        ImageChannelStackReference[/* tileRow */][/* tileCol */] tilesMap =
+        WellImageChannelStack[/* tileRow */][/* tileCol */] tilesMap =
                 createTilesMap(channelStackReferences, images);
         for (int row = 1; row <= images.getTileRowsNum(); row++)
         {
             for (int col = 1; col <= images.getTileColsNum(); col++)
             {
-                ImageChannelStackReference stackRef = tilesMap[row - 1][col - 1];
+                WellImageChannelStack stackRef = tilesMap[row - 1][col - 1];
                 if (stackRef != null)
                 {
                     ImageUrlUtils.addImageUrlWidget(container, sessionId, images, channel,
@@ -139,13 +139,13 @@ class WellContentTimepointsViewer
         return container;
     }
 
-    private static ImageChannelStackReference[][] createTilesMap(
-            List<ImageChannelStackReference> stackReferences, WellImages images)
+    private static WellImageChannelStack[][] createTilesMap(
+            List<WellImageChannelStack> stackReferences, WellImages images)
     {
         int rows = images.getTileRowsNum();
         int cols = images.getTileColsNum();
-        ImageChannelStackReference[][] map = new ImageChannelStackReference[rows][cols];
-        for (ImageChannelStackReference stackRef : stackReferences)
+        WellImageChannelStack[][] map = new WellImageChannelStack[rows][cols];
+        for (WellImageChannelStack stackRef : stackReferences)
         {
             map[stackRef.getTileRow() - 1][stackRef.getTileCol() - 1] = stackRef;
         }
@@ -167,18 +167,18 @@ class WellContentTimepointsViewer
         return "Timepoint: " + timepoint + "sec (" + sequenceNumber + "/" + numberOfSequences + ")";
     }
 
-    private static Map<Float, List<ImageChannelStackReference>> groupImagesByTimepoint(
-            List<ImageChannelStackReference> channelStackImages)
+    private static Map<Float, List<WellImageChannelStack>> groupImagesByTimepoint(
+            List<WellImageChannelStack> channelStackImages)
     {
-        Map<Float, List<ImageChannelStackReference>> result =
-                new TreeMap<Float, List<ImageChannelStackReference>>();
-        for (ImageChannelStackReference ref : channelStackImages)
+        Map<Float, List<WellImageChannelStack>> result =
+                new TreeMap<Float, List<WellImageChannelStack>>();
+        for (WellImageChannelStack ref : channelStackImages)
         {
             Float t = ref.tryGetTimepoint();
-            List<ImageChannelStackReference> imageReferences = result.get(t);
+            List<WellImageChannelStack> imageReferences = result.get(t);
             if (imageReferences == null)
             {
-                imageReferences = new ArrayList<ImageChannelStackReference>();
+                imageReferences = new ArrayList<WellImageChannelStack>();
                 result.put(t, imageReferences);
             }
             imageReferences.add(ref);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
index d8e5fb01d87ce403b65c86649246115970e58c5a..74ef62db67bdd0c91d9a547d6289b46a561a470a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java
@@ -57,7 +57,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.BuildAndEnvironmentInfo;
 import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientService;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.IScreeningServer;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.ResourceNames;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.LibraryRegistrationInfo;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
@@ -283,7 +283,7 @@ public final class ScreeningClientService extends AbstractClientService implemen
         return server.getVocabulary(sessionToken, ScreeningConstants.PLATE_GEOMETRY);
     }
 
-    public List<ImageChannelStackReference> listImageChannelStacks(String datasetCode,
+    public List<WellImageChannelStack> listImageChannelStacks(String datasetCode,
             String datastoreCode, WellLocation wellLocation)
     {
         final String sessionToken = getSessionToken();
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
index a578f567ab885c539d43d2d3508cc6035ffec744..86ca28aa00bd8213a64aa512b3e2384623553748 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
@@ -59,7 +59,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellMaterialMapping;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellReferenceWithDatasets;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria;
@@ -148,7 +148,7 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl
                 materialCriteria, true);
     }
 
-    public List<ImageChannelStackReference> listImageChannelStacks(String sessionToken,
+    public List<WellImageChannelStack> listImageChannelStacks(String sessionToken,
             String datasetCode, String datastoreCode, WellLocation wellLocation)
     {
         Session session = getSession(sessionToken);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java
index c56f526cdb82f54cea81ede18a2ba0bc3870d72c..827e69adc51c381a247e1a0f69a8810d8e8480bf 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java
@@ -42,7 +42,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateIdentifier;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellMaterialMapping;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellReferenceWithDatasets;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria;
@@ -96,7 +96,7 @@ final class ScreeningServerLogger extends AbstractServerLogger implements IScree
         return null;
     }
 
-    public List<ImageChannelStackReference> listImageChannelStacks(String sessionToken,
+    public List<WellImageChannelStack> listImageChannelStacks(String sessionToken,
             String datasetCode, String datastoreCode, WellLocation wellLocation)
     {
         logAccess(sessionToken, "listImageChannelStacks", "dataset(%s) well(%s)", datasetCode,
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 57cba039aa6389efa4dfadd2f8390048138f312f..6d706ba293ee2c49c5449d003eade36954a49e92 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
@@ -40,7 +40,7 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator;
 import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
 import ch.systemsx.cisd.openbis.plugin.screening.server.IScreeningBusinessObjectFactory;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Geometry;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetImagesReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetReference;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
@@ -96,7 +96,7 @@ public class PlateContentLoader
     /**
      * Loads information about all channels stacks of a given well in a given dataset.
      */
-    public static List<ImageChannelStackReference> loadImageChannelStacks(Session session,
+    public static List<WellImageChannelStack> loadImageChannelStacks(Session session,
             IScreeningBusinessObjectFactory businessObjectFactory, String datasetCode,
             String datastoreCode, WellLocation wellLocation)
     {
@@ -325,7 +325,7 @@ public class PlateContentLoader
                 .createForContainer(plateId));
     }
 
-    private List<ImageChannelStackReference> loadImageChannelStacks(String datasetCode,
+    private List<WellImageChannelStack> loadImageChannelStacks(String datasetCode,
             String datastoreCode, WellLocation wellLocation)
     {
         IHCSDatasetLoader datasetLoader =
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java
index 6b72c3c9680d86bf9575984e94f3db3d751eee3e..1772381c512ed65a078f61686d4b3b84477bdd3b 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java
@@ -38,7 +38,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.authorization.PlateMaterialsSearchCriteriaPredicate;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.authorization.WellContentValidator;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria;
@@ -79,7 +79,7 @@ public interface IScreeningServer extends IServer
 
     @Transactional
     @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER)
-    public List<ImageChannelStackReference> listImageChannelStacks(String sessionToken,
+    public List<WellImageChannelStack> listImageChannelStacks(String sessionToken,
             @AuthorizationGuard(guardClass = DataSetCodePredicate.class) String datasetCode,
             String datastoreCode, WellLocation wellLocation);
 
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageChannelStackReference.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellImageChannelStack.java
similarity index 87%
rename from screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageChannelStackReference.java
rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellImageChannelStack.java
index f993c24131d0906cdc8162111ef4c90d1ac5970b..bea1ffe0721b67f86c82ab273f3a07a7634d3a4c 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageChannelStackReference.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellImageChannelStack.java
@@ -20,11 +20,11 @@ import com.google.gwt.user.client.rpc.IsSerializable;
 
 /**
  * Describes one channel stack which has images for many channels and a specific tile (and
- * optionally timepoint and/or depth).
+ * optionally timepoint and/or depth) of one well.
  * 
  * @author Tomasz Pylak
  */
-public class ImageChannelStackReference implements IsSerializable
+public class WellImageChannelStack implements IsSerializable
 {
     // technical id in the imaging db
     private long channelStackTechId;
@@ -35,12 +35,12 @@ public class ImageChannelStackReference implements IsSerializable
 
     // GWT only
     @SuppressWarnings("unused")
-    private ImageChannelStackReference()
+    private WellImageChannelStack()
     {
     }
 
-    public ImageChannelStackReference(long channelStackTechId, int tileRow, int tileCol,
-            Float tOrNull, Float zOrNull)
+    public WellImageChannelStack(long channelStackTechId, int tileRow, int tileCol, Float tOrNull,
+            Float zOrNull)
     {
         this.channelStackTechId = channelStackTechId;
         this.tileRow = tileRow;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java
index 498fd5cffb08c4dd4b62d863c13e54f676e04fa2..4c407ded81db8444a12332eab947cf6937d1f8ce 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java
@@ -21,7 +21,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import ch.systemsx.cisd.bds.hcs.Geometry;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgChannelStackDTO;
@@ -119,7 +119,7 @@ public class HCSDatasetLoader implements IHCSDatasetLoader
         return dataset.getIsMultidimensional();
     }
 
-    public List<ImageChannelStackReference> listImageChannelStacks(WellLocation wellLocation)
+    public List<WellImageChannelStack> listImageChannelStacks(WellLocation wellLocation)
     {
         int spotYRow = wellLocation.getRow();
         int spotXColumn = wellLocation.getColumn();
@@ -128,9 +128,9 @@ public class HCSDatasetLoader implements IHCSDatasetLoader
         return convert(stacks);
     }
 
-    private static List<ImageChannelStackReference> convert(List<ImgChannelStackDTO> stacks)
+    private static List<WellImageChannelStack> convert(List<ImgChannelStackDTO> stacks)
     {
-        List<ImageChannelStackReference> result = new ArrayList<ImageChannelStackReference>();
+        List<WellImageChannelStack> result = new ArrayList<WellImageChannelStack>();
         for (ImgChannelStackDTO stack : stacks)
         {
             result.add(convert(stack));
@@ -138,9 +138,9 @@ public class HCSDatasetLoader implements IHCSDatasetLoader
         return result;
     }
 
-    private static ImageChannelStackReference convert(ImgChannelStackDTO stack)
+    private static WellImageChannelStack convert(ImgChannelStackDTO stack)
     {
-        return new ImageChannelStackReference(stack.getId(), stack.getRow(), stack.getColumn(),
+        return new WellImageChannelStack(stack.getId(), stack.getRow(), stack.getColumn(),
                 stack.getT(), stack.getZ());
     }
 }
\ No newline at end of file
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
index cdddd3a5e6bb8804ba6134810ae69849376812de..1034425bfcae53629fc22047fa7e962e81250a02 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java
@@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging;
 import java.util.List;
 
 import ch.systemsx.cisd.bds.hcs.Geometry;
-import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStackReference;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellImageChannelStack;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation;
 
 /**
@@ -44,5 +44,5 @@ public interface IHCSDatasetLoader
     /**
      * Loads information about all channels stacks of a given well.
      */
-    List<ImageChannelStackReference> listImageChannelStacks(WellLocation wellLocation);
+    List<WellImageChannelStack> listImageChannelStacks(WellLocation wellLocation);
 }
\ No newline at end of file