diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/SimpleTableModelBuilderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/SimpleTableModelBuilderTest.java
similarity index 99%
rename from datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/SimpleTableModelBuilderTest.java
rename to openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/SimpleTableModelBuilderTest.java
index 600914152fe40eae27956b33ca02aab43b7fd40b..1dbfe6a6c5990d0c5465af24a55f4cfd6941ee5b 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/SimpleTableModelBuilderTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/SimpleTableModelBuilderTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks;
+package ch.systemsx.cisd.openbis.generic.shared;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramImagesReporter.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramImagesReporter.java
index 76b6f0bd65439d8e04a79b1a568e90bab04a4912..7e7e233acb495ef5b02c2eb77208891bf6a84e62 100644
--- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramImagesReporter.java
+++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramImagesReporter.java
@@ -26,7 +26,6 @@ import java.util.Properties;
 import net.lemnik.eodsql.DataIterator;
 
 import ch.rinn.restrictions.Private;
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder;
 import ch.systemsx.cisd.openbis.dss.yeastx.server.EICMLChromatogramGeneratorServlet;
 import ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GeneratedImageTableCell;
@@ -34,6 +33,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRow;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
+import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder;
 
 /**
  * Reporting plugin which shows images for the chromatograms contained in the specified datasets.
@@ -172,9 +172,9 @@ public class EICMLChromatogramImagesReporter extends AbstractEICMLDatastoreRepor
         String chromatogramLabel = chromatogram.getLabel();
         row.add(SimpleTableModelBuilder.asText(chromatogramLabel));
         int mz1 = getMz1(chromatogramLabel);
-        row.add(SimpleTableModelBuilder.asNum(mz1));
+        row.add(SimpleTableModelBuilder.asInteger(mz1));
         int mz2 = getMz2(chromatogramLabel);
-        row.add(SimpleTableModelBuilder.asNum(mz2));
+        row.add(SimpleTableModelBuilder.asInteger(mz2));
         row.add(imageCell);
         return row;
     }
diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramsReporter.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramsReporter.java
index 8785555b1c3a27061aab16b1b658c8c67573e8ae..29b266a7b8bc8477c248f8e41de3c76b181541e8 100644
--- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramsReporter.java
+++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLChromatogramsReporter.java
@@ -16,8 +16,8 @@
 
 package ch.systemsx.cisd.yeastx.eicml;
 
-import static ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder.asNum;
-import static ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder.asText;
+import static ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder.asDouble;
+import static ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder.asText;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -26,10 +26,10 @@ import java.util.Properties;
 
 import net.lemnik.eodsql.DataIterator;
 
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
+import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder;
 
 /**
  * Reporting plugin which shows all the chromatograms details for the chosen datasets.
@@ -88,12 +88,12 @@ public class EICMLChromatogramsReporter extends AbstractEICMLDatastoreReportingP
         List<ISerializableComparable> row = new ArrayList<ISerializableComparable>();
 
         row.add(asText(chromatogram.getLabel()));
-        row.add(asNum(calcMin(chromatogram.getRunTimes())));
-        row.add(asNum(calcMax(chromatogram.getRunTimes())));
-        row.add(asNum(calcMax(chromatogram.getIntensities())));
-        row.add(asNum(chromatogram.getQ1Mz()));
-        row.add(asNum(chromatogram.getQ3LowMz()));
-        row.add(asNum(chromatogram.getQ3HighMz()));
+        row.add(asDouble(calcMin(chromatogram.getRunTimes())));
+        row.add(asDouble(calcMax(chromatogram.getRunTimes())));
+        row.add(asDouble(calcMax(chromatogram.getIntensities())));
+        row.add(asDouble(chromatogram.getQ1Mz()));
+        row.add(asDouble(chromatogram.getQ3LowMz()));
+        row.add(asDouble(chromatogram.getQ3HighMz()));
         row.add(asText("" + chromatogram.getPolarity()));
         return row;
     }
diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLRunsReporter.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLRunsReporter.java
index 69f0cef0de663efe9079c23e7b792e0749d0cc57..fd6e9e8e5ca6ea8ca59ce533840751759cb7c366 100644
--- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLRunsReporter.java
+++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/eicml/EICMLRunsReporter.java
@@ -16,25 +16,26 @@
 
 package ch.systemsx.cisd.yeastx.eicml;
 
-import static ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder.asNum;
+import static ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder.asDate;
+import static ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder.asDouble;
+import static ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder.asText;
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.Properties;
 
-import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
+import ch.systemsx.cisd.openbis.generic.shared.util.SimpleTableModelBuilder;
 
 /**
  * Reporting plugin which shows all the run details for the chosen datasets.
  * 
  * @author Tomasz Pylak
  */
-public class EICMLRunsReporter extends AbstractEICMLDatastoreReportingPlugin 
+public class EICMLRunsReporter extends AbstractEICMLDatastoreReportingPlugin
 {
     private static final long serialVersionUID = 1L;
 
@@ -72,29 +73,12 @@ public class EICMLRunsReporter extends AbstractEICMLDatastoreReportingPlugin
         row.add(asText(run.getMethodIonisation()));
         row.add(asText(run.getMethodSeparation()));
         row.add(asDate(run.getAcquisitionDate()));
-        row.add(asNum(run.getStartTime()));
-        row.add(asNum(run.getEndTime()));
+        row.add(asDouble(run.getStartTime()));
+        row.add(asDouble(run.getEndTime()));
         row.add(asText(run.getOperator()));
         return row;
     }
 
-    private static ISerializableComparable asDate(Date dateOrNull)
-    {
-        if (dateOrNull != null)
-        {
-            return SimpleTableModelBuilder.asDate(dateOrNull);
-        } else
-        {
-            return SimpleTableModelBuilder.asText("");
-        }
-    }
-
-    private static ISerializableComparable asText(String textOrNull)
-    {
-        String text = textOrNull == null ? "" : textOrNull;
-        return SimpleTableModelBuilder.asText(text);
-    }
-
     private static void addReportHeaders(SimpleTableModelBuilder builder)
     {
         builder.addHeader("Dataset");