diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/Geometry.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/Geometry.java
index 0987005a287ab84a3967f7f30bffee5af25a0b9e..ab418ab8b8a6ab37f61157046e3a7bba0821df3b 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/Geometry.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/Geometry.java
@@ -51,7 +51,7 @@ public class Geometry implements IStorable
 
     private final int columns;
 
-    protected Geometry(final int rows, final int columns)
+    Geometry(final int rows, final int columns)
     {
         assert columns > 0 : String.format(NOT_POSITIVE, "columns", columns);
         this.columns = columns;
@@ -82,7 +82,7 @@ public class Geometry implements IStorable
      * @param toString the output you get when calling {@link #toString()}.
      * @return <code>null</code> if operation fails.
      */
-    public final static Geometry createFromString(final String toString)
+    static Geometry createFromString(final String toString)
     {
         assert toString != null : "Given string can not be null.";
         final int index = toString.indexOf(X);
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/PlateGeometry.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/PlateGeometry.java
index 7168f9390f7df87eb2dc176014912730d2690965..cb06a5159b64dacede25595674efe75a35d0bad3 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/PlateGeometry.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/PlateGeometry.java
@@ -50,7 +50,15 @@ public final class PlateGeometry extends Geometry
      */
     final static Geometry loadFrom(final IDirectory directory)
     {
-        return loadFrom(directory, PLATE_GEOMETRY);
+        return new PlateGeometry(loadFrom(directory, PLATE_GEOMETRY));
+    }
+
+    /**
+     * Creates a new <code>WellGeometry</code> from given <var>toString</var>.
+     */
+    public final static Geometry createFromString(final String toString)
+    {
+        return new PlateGeometry(Geometry.createFromString(toString));
     }
 
     //
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/WellGeometry.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/WellGeometry.java
index 017b1d6ea33f305ba20dba938f1f1eb058366e05..60bdeb4d6c8ae720e7e9fef0a60a047166c9f538 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/WellGeometry.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/WellGeometry.java
@@ -50,7 +50,15 @@ public final class WellGeometry extends Geometry
      */
     final static Geometry loadFrom(final IDirectory directory)
     {
-        return loadFrom(directory, WELL_GEOMETRY);
+        return new WellGeometry(loadFrom(directory, WELL_GEOMETRY));
+    }
+
+    /**
+     * Creates a new <code>WellGeometry</code> from given <var>toString</var>.
+     */
+    public final static Geometry createFromString(final String toString)
+    {
+        return new WellGeometry(Geometry.createFromString(toString));
     }
 
     //