diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientService.java
index a4ea41631590d1763ac2e17e6bae00221ad06876..253cf47e82d13e0138a2f328b8b93e4cfceee143 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientService.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientService.java
@@ -21,6 +21,7 @@ import java.util.List;
 import ch.systemsx.cisd.openbis.generic.client.web.client.IClientService;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetWithEntityTypes;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
 import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
@@ -85,7 +86,7 @@ public interface IPhosphoNetXClientService extends IClientService
             TableExportCriteria<SampleWithPropertiesAndAbundance> exportCriteria)
             throws UserFailureException;
 
-    public ResultSet<Sample> listRawDataSamples(IResultSetConfig<String, Sample> criteria)
+    public ResultSetWithEntityTypes<Sample> listRawDataSamples(IResultSetConfig<String, Sample> criteria)
             throws UserFailureException;
 
     public String prepareExportRawDataSamples(TableExportCriteria<Sample> exportCriteria)
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientServiceAsync.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientServiceAsync.java
index 256196ea6d8fdb92a57d1a935d7bc047d6ae9d68..d2ed071900908be4b02b0ca866fc04b0e23f12ee 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientServiceAsync.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/IPhosphoNetXClientServiceAsync.java
@@ -23,6 +23,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.IClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetWithEntityTypes;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
@@ -104,7 +105,7 @@ public interface IPhosphoNetXClientServiceAsync extends IClientServiceAsync
 
     /** @see IPhosphoNetXClientService#listRawDataSamples(IResultSetConfig) */
     public void listRawDataSamples(IResultSetConfig<String, Sample> criteria,
-            AsyncCallback<ResultSet<Sample>> callback);
+            AsyncCallback<ResultSetWithEntityTypes<Sample>> callback);
     
     /** @see IPhosphoNetXClientService#prepareExportRawDataSamples(TableExportCriteria) */
     public void prepareExportRawDataSamples(TableExportCriteria<Sample> exportCriteria,
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/RawDataSampleGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/RawDataSampleGrid.java
index 0dac34d682d302cdb81e42c8584f030328696354..23292509eda0192e4a124febb89ab37313ae65f0 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/RawDataSampleGrid.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/RawDataSampleGrid.java
@@ -22,7 +22,9 @@ import static ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.appl
 import static ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.Dict.COPY_DATA_SETS_MESSAGE;
 import static ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.application.Dict.COPY_DATA_SETS_TITLE;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 import com.extjs.gxt.ui.client.widget.Dialog;
 import com.extjs.gxt.ui.client.widget.button.Button;
@@ -33,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericCon
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.VoidAsyncCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.EntityGridModelFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs;
@@ -42,9 +45,14 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ID
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataConfirmationDialog;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetWithEntityTypes;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
 import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind;
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.client.web.client.IPhosphoNetXClientServiceAsync;
@@ -115,6 +123,8 @@ class RawDataSampleGrid extends AbstractSimpleBrowserGrid<Sample>
 
     private final IViewContext<IPhosphoNetXClientServiceAsync> specificViewContext;
     
+    private Set<BasicEntityType> shownEntityTypesOrNull;
+   
     RawDataSampleGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
     {
         super(viewContext.getCommonViewContext(), BROWSER_ID, GRID_ID, true,
@@ -153,7 +163,26 @@ class RawDataSampleGrid extends AbstractSimpleBrowserGrid<Sample>
     @Override
     protected ColumnDefsAndConfigs<Sample> createColumnsDefinition()
     {
-        ColumnDefsAndConfigs<Sample> schema = super.createColumnsDefinition();
+        IColumnDefinitionKind<Sample>[] columnsDefinition = getStaticColumnsDefinition();
+        EntityGridModelFactory<Sample> factory = new EntityGridModelFactory<Sample>(columnsDefinition);
+        ArrayList<PropertyType> propertyTypes = new ArrayList<PropertyType>();
+        if (shownEntityTypesOrNull != null)
+        {
+            for (BasicEntityType type : shownEntityTypesOrNull)
+            {
+                if (type instanceof EntityType)
+                {
+                    EntityType entityType = (EntityType) type;
+                    List<? extends EntityTypePropertyType<?>> etpts = entityType.getAssignedPropertyTypes();
+                    for (EntityTypePropertyType<?> entityTypePropertyType : etpts)
+                    {
+                        propertyTypes.add(entityTypePropertyType.getPropertyType());
+                    }
+                }
+            }
+        }
+        System.out.println(shownEntityTypesOrNull + " " + propertyTypes);
+        ColumnDefsAndConfigs<Sample> schema = factory.createColumnsSchema(viewContext, propertyTypes);
         GridCellRenderer<BaseEntityModel<?>> linkCellRenderer = createInternalLinkCellRenderer();
         schema.setGridCellRendererFor(RawDataSampleColDefKind.CODE.id(), linkCellRenderer);
         return schema;
@@ -167,9 +196,26 @@ class RawDataSampleGrid extends AbstractSimpleBrowserGrid<Sample>
     
     @Override
     protected void listEntities(DefaultResultSetConfig<String, Sample> resultSetConfig,
-            AbstractAsyncCallback<ResultSet<Sample>> callback)
+            final AbstractAsyncCallback<ResultSet<Sample>> callback)
     {
-        specificViewContext.getService().listRawDataSamples(resultSetConfig, callback);
+        AbstractAsyncCallback<ResultSetWithEntityTypes<Sample>> extendedCallback =
+            new AbstractAsyncCallback<ResultSetWithEntityTypes<Sample>>(viewContext)
+                {
+                    @Override
+                    protected void process(ResultSetWithEntityTypes<Sample> result)
+                    {
+                        shownEntityTypesOrNull = result.getAvailableEntityTypes();
+                        callback.onSuccess(result.getResultSet());
+//                        refreshColumnsSettingsIfNecessary();
+                    }
+
+                    @Override
+                    public void finishOnFailure(Throwable caught)
+                    {
+                        callback.finishOnFailure(caught);
+                    }
+                };
+        specificViewContext.getService().listRawDataSamples(resultSetConfig, extendedCallback);
     }
 
     @Override
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/PhosphoNetXClientService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/PhosphoNetXClientService.java
index 0782a2ac3cd0683ec26bb5817ac788019f38ad23..75e3d1843aede398fd7601580ff79f7efae3d73d 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/PhosphoNetXClientService.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/PhosphoNetXClientService.java
@@ -26,6 +26,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.servlet.IRequestContextProvider;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
+import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSetWithEntityTypes;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria;
 import ch.systemsx.cisd.openbis.generic.client.web.server.AbstractClientService;
 import ch.systemsx.cisd.openbis.generic.client.web.server.translator.UserFailureExceptionTranslator;
@@ -185,11 +186,11 @@ public class PhosphoNetXClientService extends AbstractClientService implements
         return prepareExportEntities(exportCriteria);
     }
 
-    public ResultSet<Sample> listRawDataSamples(IResultSetConfig<String, Sample> criteria)
+    public ResultSetWithEntityTypes<Sample> listRawDataSamples(IResultSetConfig<String, Sample> criteria)
             throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException
     {
         final String sessionToken = getSessionToken();
-        return listEntities(criteria, new RawDataSampleProvider(rawDataService, sessionToken));
+        return listEntitiesWithTypes(criteria, new RawDataSampleProvider(rawDataService, sessionToken));
     }
 
     public String prepareExportRawDataSamples(TableExportCriteria<Sample> exportCriteria)
@@ -204,5 +205,4 @@ public class PhosphoNetXClientService extends AbstractClientService implements
         rawDataService.copyRawData(getSessionToken(), rawDataSampleIDs);
     }
     
-
 }