diff --git a/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java b/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
index 55adf96bcffc1db1a6bceace1feed1a5d338b650..d85b435d1651b3ea52f65bfe8e5acd8fb2ec08c5 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/AbstractDataStructure.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.bds;
 import java.util.ArrayList;
 import java.util.List;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IStorage;
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/AbstractFormattedData.java b/bds/source/java/ch/systemsx/cisd/bds/AbstractFormattedData.java
index 911ce7a583579c54bb1973674d8f47e6a059dd83..92a81d3f895a8fbad7fda35a12e78129fce53113 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/AbstractFormattedData.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/AbstractFormattedData.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureFactory.java b/bds/source/java/ch/systemsx/cisd/bds/DataStructureFactory.java
index d7e4b8c220ba79f08f0c15aa96baf20ebf2027b8..36d14621a243b38cfd7852414078193e87ac36b5 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureFactory.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureFactory.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IStorage;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureLoader.java b/bds/source/java/ch/systemsx/cisd/bds/DataStructureLoader.java
index 8783190a7ac990d80aa8885e2925932232dbca82..764f2d26eb1bb2282e7b7148da04dbe197f4110e 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureLoader.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureLoader.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.bds;
 
 import java.io.File;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IStorage;
 import ch.systemsx.cisd.bds.storage.filesystem.FileStorage;
 import ch.systemsx.cisd.bds.storage.hdf5.HDF5Storage;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
index f526cbef3cc2a1c37eab05dae971274ba1357331..956740a4f8dd20dd936182d0ec209721992eae9b 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataStructureV1_0.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.bds;
 
 import java.util.Set;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.handler.ChecksumHandler;
 import ch.systemsx.cisd.bds.handler.MappingFileHandler;
 import ch.systemsx.cisd.bds.storage.IDirectory;
@@ -117,7 +118,7 @@ public class DataStructureV1_0 extends AbstractDataStructure
         {
             throw new DataStructureException("Couldn't create formated data because of unspecified format.");
         }
-        return FormatedDataFactory.createFormatedData(getDataDirectory(), format, UnknownFormat1_0.UNKNOWN_1_0,
+        return FormattedDataFactory.createFormatedData(getDataDirectory(), format, UnknownFormat1_0.UNKNOWN_1_0,
                 formatParameters);
     }
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java b/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
index 3540ac25f61b14017addaf82947e470fb631eead..b07bd1dd719c87304fa80aeb3585107024c41146 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/ExperimentIdentifier.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrator.java b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrator.java
index 4d21cd66e391ca3db98b0d33fdaf50bafc84be47..466d7178c815b6336fd33956e351f601375b8218 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrator.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistrator.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistratorDate.java b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistratorDate.java
index b7563dec65d968a151edf7a02078ff4070454c2a..eb56a34449cb717b608fbddd8aca160de8aa079d 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistratorDate.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/ExperimentRegistratorDate.java
@@ -20,6 +20,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Factory.java b/bds/source/java/ch/systemsx/cisd/bds/Factory.java
index e700c940c5c5033876dbd45246979a39b62df516..cf7c5cdf25f4ba0aefc2b2057f00cd2aa71e1cb1 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Factory.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Factory.java
@@ -21,6 +21,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Map;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Format.java b/bds/source/java/ch/systemsx/cisd/bds/Format.java
index ec569b375ae924e610caf5a12564b970f69add79..24e1c4c882c13dab248b05c3047474d6646ec0dc 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Format.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Format.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.INode;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/FormatStore.java b/bds/source/java/ch/systemsx/cisd/bds/FormatStore.java
index 7a21a72ecf3a02759dd689b01c79c30588ae3fd5..93bc71a699dcb5ee455871ba937c84484f290838 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/FormatStore.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/FormatStore.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.bds;
 import java.util.HashMap;
 import java.util.Map;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.hcs.HCSImageFormat1_0;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/FormatedDataFactory.java b/bds/source/java/ch/systemsx/cisd/bds/FormattedDataFactory.java
similarity index 95%
rename from bds/source/java/ch/systemsx/cisd/bds/FormatedDataFactory.java
rename to bds/source/java/ch/systemsx/cisd/bds/FormattedDataFactory.java
index b45deebd766f9f5ccf7285c3f31ea8483a1ea701..da565a1fffdf528b0fa699a665e334a8b3abf1f5 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/FormatedDataFactory.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/FormattedDataFactory.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.bds;
 import java.util.HashMap;
 import java.util.Map;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.hcs.HCSImageFormat1_0;
 import ch.systemsx.cisd.bds.hcs.HCSImageFormattedData;
 import ch.systemsx.cisd.bds.storage.IDirectory;
@@ -28,7 +29,7 @@ import ch.systemsx.cisd.bds.storage.IDirectory;
  * 
  * @author Franz-Josef Elmer
  */
-public final class FormatedDataFactory
+public final class FormattedDataFactory
 {
     private static final Map<String, Factory<IFormattedData>> factories =
             new HashMap<String, Factory<IFormattedData>>();
@@ -39,7 +40,7 @@ public final class FormatedDataFactory
         register(HCSImageFormat1_0.HCS_IMAGE_1_0, HCSImageFormattedData.class);
     }
 
-    private FormatedDataFactory()
+    private FormattedDataFactory()
     {
         // This class cannot be instantiated.
     }
diff --git a/bds/source/java/ch/systemsx/cisd/bds/IDataStructure.java b/bds/source/java/ch/systemsx/cisd/bds/IDataStructure.java
index cfa80e22a7f8ab58ba3ed4c176a8e79574f0b0de..4b1972452fa2f7628e25cf6c59bc330ed26d6c7a 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/IDataStructure.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/IDataStructure.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+
 
 /**
  * Common interface of all data structures. Implementations of this interface provide methods to manipulate a data
diff --git a/bds/source/java/ch/systemsx/cisd/bds/IDataStructureHandler.java b/bds/source/java/ch/systemsx/cisd/bds/IDataStructureHandler.java
index bc9fece75e6293bcf4c64f41b6710e24acf463f2..2861bb5a755c7c08d9f49d42722d2c5873a36945 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/IDataStructureHandler.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/IDataStructureHandler.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+
 /**
  * The aim of this interface is to delegate the work that should be done in {@link AbstractDataStructure} to smaller
  * parties.
diff --git a/bds/source/java/ch/systemsx/cisd/bds/MeasurementEntity.java b/bds/source/java/ch/systemsx/cisd/bds/MeasurementEntity.java
index a9861f378eba6d8e135624c768ff6208f15b3423..eb8faa09d15a59dd5a50b6d0e9fc6bd75c7b7dc6 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/MeasurementEntity.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/MeasurementEntity.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
index a3da40b3fe4b1513d4576eb720765875517b0e21..a3a2185d5e491354e21d0733b904dc7949423b0e 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.bds;
 
 import java.util.List;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.INode;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Version.java b/bds/source/java/ch/systemsx/cisd/bds/Version.java
index 50d63671a170294034c1be832945bcb4e1a2de72..73322214091b1cf79b55e559ca1ced00524143ab 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Version.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Version.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.bds;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataStructureException.java b/bds/source/java/ch/systemsx/cisd/bds/exception/DataStructureException.java
similarity index 93%
rename from bds/source/java/ch/systemsx/cisd/bds/DataStructureException.java
rename to bds/source/java/ch/systemsx/cisd/bds/exception/DataStructureException.java
index 6682379e29f0f58931e2ad69588934b77aa41fd7..ee81cc3c8aa8198125d5aaed2753895a4a352292 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataStructureException.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/exception/DataStructureException.java
@@ -14,9 +14,8 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.bds;
+package ch.systemsx.cisd.bds.exception;
 
-import ch.systemsx.cisd.bds.storage.StorageException;
 
 /**
  * Exception thrown by manipulations of BDS data structures which can not be classified as {@link StorageException}.
diff --git a/bds/source/java/ch/systemsx/cisd/bds/storage/StorageException.java b/bds/source/java/ch/systemsx/cisd/bds/exception/StorageException.java
similarity index 97%
rename from bds/source/java/ch/systemsx/cisd/bds/storage/StorageException.java
rename to bds/source/java/ch/systemsx/cisd/bds/exception/StorageException.java
index 50e0209a23894cc4c72842cdce21cd70fe95ea51..171921090dcf3c273b30955cc4cae750ec87a170 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/storage/StorageException.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/exception/StorageException.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.bds.storage;
+package ch.systemsx.cisd.bds.exception;
 
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/handler/ChecksumHandler.java b/bds/source/java/ch/systemsx/cisd/bds/handler/ChecksumHandler.java
index de0499e3b8a362875eb5ccbb4c614e3877be7b68..047eae7746fca72f6d9102af4257cb263826274b 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/handler/ChecksumHandler.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/handler/ChecksumHandler.java
@@ -26,10 +26,10 @@ import java.util.List;
 import org.apache.commons.io.IOUtils;
 
 import ch.systemsx.cisd.bds.Constants;
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.DataStructureV1_0;
 import ch.systemsx.cisd.bds.IDataStructureHandler;
 import ch.systemsx.cisd.bds.Utilities;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.INode;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/handler/MappingFileHandler.java b/bds/source/java/ch/systemsx/cisd/bds/handler/MappingFileHandler.java
index b60213bb01014294f70c17ad9ce7a803672495e0..2a5581e0da065a8a511b01faa0c7d6bbf909cd12 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/handler/MappingFileHandler.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/handler/MappingFileHandler.java
@@ -22,11 +22,11 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.IDataStructureHandler;
 import ch.systemsx.cisd.bds.Reference;
 import ch.systemsx.cisd.bds.ReferenceType;
 import ch.systemsx.cisd.bds.Utilities;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.common.utilities.CollectionIO;
 import ch.systemsx.cisd.common.utilities.IToStringConverter;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/Channel.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/Channel.java
index 0620cdc5c1f9db4f9885533d1b4c99475cb38e82..b888233f1dc8a4af317ca8aec508b57ba168f31b 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/Channel.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/Channel.java
@@ -16,9 +16,9 @@
 
 package ch.systemsx.cisd.bds.hcs;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.IStorable;
 import ch.systemsx.cisd.bds.Utilities;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java
index 672808d296688f4d19cba97c17858d1a8d79b068..ba240df0b01220626dd54e517d4d269baebfa6fa 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/ChannelList.java
@@ -21,9 +21,9 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.FormatParameter;
 import ch.systemsx.cisd.bds.IStorable;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.INode;
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedData.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedData.java
index c2ed9e925f357620f7a28cec9b09f71fe06aba26..1b0994e18b8bf8b4ba8972ea93136091e176fe62 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedData.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedData.java
@@ -20,16 +20,16 @@ import java.util.HashSet;
 import java.util.Set;
 
 import ch.systemsx.cisd.bds.AbstractFormattedData;
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.DataStructureV1_0;
 import ch.systemsx.cisd.bds.Format;
 import ch.systemsx.cisd.bds.FormattedDataContext;
 import ch.systemsx.cisd.bds.IFormatParameters;
 import ch.systemsx.cisd.bds.IFormattedData;
 import ch.systemsx.cisd.bds.Utilities;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.INode;
-import ch.systemsx.cisd.bds.storage.StorageException;
 
 /**
  * {@link IFormattedData} implementation for <i>HCS (High-Content Screening) with Images</i>. It is associated with
diff --git a/bds/source/java/ch/systemsx/cisd/bds/hcs/IHCSFormattedData.java b/bds/source/java/ch/systemsx/cisd/bds/hcs/IHCSFormattedData.java
index 0b408224a6aa265e2e2b6bfdfc2aa1ebc100ff9b..a0247918ff4e33d2d328fed09031858d4beee3b3 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/hcs/IHCSFormattedData.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/hcs/IHCSFormattedData.java
@@ -16,8 +16,8 @@
 
 package ch.systemsx.cisd.bds.hcs;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.IFormattedData;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.ILink;
 import ch.systemsx.cisd.bds.storage.INode;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/storage/IStorage.java b/bds/source/java/ch/systemsx/cisd/bds/storage/IStorage.java
index ac018d8f4b1cc12b9b5055b8ef6daa8ddf299110..841eae10582de245e2ce400018158ef9ad9fe48e 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/storage/IStorage.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/storage/IStorage.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.bds.storage;
 
+import ch.systemsx.cisd.bds.exception.StorageException;
+
 
 /**
  * Abstraction of a hierarchical storage.
diff --git a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/AbstractNode.java b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/AbstractNode.java
index 8de90a92d2a130a9b413242a88fb67282e2bce8d..87091b93a080a104a49746be81f2b20039dca8dc 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/AbstractNode.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/AbstractNode.java
@@ -18,9 +18,9 @@ package ch.systemsx.cisd.bds.storage.filesystem;
 
 import java.io.File;
 
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.INode;
-import ch.systemsx.cisd.bds.storage.StorageException;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 
 /**
diff --git a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/Directory.java b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/Directory.java
index c3f3e8d32a9a5890b37c59b39ac0f6bc52483301..16192f56aa1a9a8cb8d23ccafed459bc01c9bbe5 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/Directory.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/Directory.java
@@ -22,12 +22,12 @@ import java.util.Iterator;
 import org.apache.commons.io.FileUtils;
 
 import ch.systemsx.cisd.bds.Constants;
-import ch.systemsx.cisd.bds.DataStructureException;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.ILink;
 import ch.systemsx.cisd.bds.storage.INode;
-import ch.systemsx.cisd.bds.storage.StorageException;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.utilities.FileUtilities;
 
diff --git a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorage.java b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorage.java
index fbde24c79ed03fa3f8b06d6a5686039737d4a1eb..52c97f329e363ec6270cf524a639bc21ac9900ac 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorage.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorage.java
@@ -18,9 +18,9 @@ package ch.systemsx.cisd.bds.storage.filesystem;
 
 import java.io.File;
 
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IStorage;
-import ch.systemsx.cisd.bds.storage.StorageException;
 
 /**
  * Implementation of {@link IStorage} based on the file system.
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureFactoryTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureFactoryTest.java
index 24ecca1eb89416d6cae49bc978445d6734003773..84890cef0b9c8f62f1c96cec2647a6a4362ede9a 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureFactoryTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureFactoryTest.java
@@ -24,6 +24,7 @@ import org.jmock.Mockery;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IStorage;
 
 /**
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
index 599a006cdd6771b60787c2d217ca47035f401b93..ceb3b87135bdda7f1202f230461b85f5f8f17af4 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureV1_0Test.java
@@ -30,11 +30,12 @@ import java.util.Set;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.handler.ChecksumHandler;
 import ch.systemsx.cisd.bds.handler.MappingFileHandler;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IStorage;
-import ch.systemsx.cisd.bds.storage.StorageException;
 import ch.systemsx.cisd.bds.storage.filesystem.FileStorage;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
index 908ba9ce5f413a20b8659110c708443bd09aa7a2..a02fe1e3e72ba8135c7f85dd2b9b7ad29954894c 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
@@ -23,6 +23,7 @@ import java.io.File;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.filesystem.NodeFactory;
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/handler/MappingFileHandlerTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/handler/MappingFileHandlerTest.java
index 3f23790a846c0557b04e6e1e9d8774ee81bdb8fc..ab1ffd5e8cf9759236dcfe2c8c9319e0668880af 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/handler/MappingFileHandlerTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/handler/MappingFileHandlerTest.java
@@ -27,9 +27,9 @@ import org.apache.commons.io.FileUtils;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.Reference;
 import ch.systemsx.cisd.bds.ReferenceType;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.filesystem.NodeFactory;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java
index 5ab934b08cf2dd4573c5c145ff65d1fd639b1ba5..64af3316b9b9e785513d688a97057013f5ae88b9 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/ChannelListTest.java
@@ -24,7 +24,7 @@ import java.util.List;
 import org.testng.annotations.Test;
 import static org.testng.AssertJUnit.*;
 
-import ch.systemsx.cisd.bds.DataStructureException;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.filesystem.NodeFactory;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureV1_0Test.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureV1_0Test.java
index f6a69e39e5061edeaf4a05cbde59d67b1144c72b..f4410d7e10e63f82491c33c2cee328c378689596 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureV1_0Test.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSDataStructureV1_0Test.java
@@ -28,7 +28,6 @@ import java.util.List;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import ch.systemsx.cisd.bds.DataStructureException;
 import ch.systemsx.cisd.bds.DataStructureLoader;
 import ch.systemsx.cisd.bds.DataStructureV1_0;
 import ch.systemsx.cisd.bds.DataStructureV1_0Test;
@@ -36,6 +35,7 @@ import ch.systemsx.cisd.bds.Format;
 import ch.systemsx.cisd.bds.FormatParameter;
 import ch.systemsx.cisd.bds.IDataStructure;
 import ch.systemsx.cisd.bds.IFormattedData;
+import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.filesystem.FileStorage;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedDataTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedDataTest.java
index 7a4ff83429f9be9524fd07b6607b57eab5ad732b..7f243df4ecc9fbd7de3af3b8560d864c9e6759c5 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedDataTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/hcs/HCSImageFormattedDataTest.java
@@ -35,7 +35,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.bds.DataStructureV1_0;
-import ch.systemsx.cisd.bds.FormatedDataFactory;
+import ch.systemsx.cisd.bds.FormattedDataFactory;
 import ch.systemsx.cisd.bds.IFormatParameters;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
@@ -83,7 +83,7 @@ public class HCSImageFormattedDataTest extends AbstractFileSystemTestCase
                 }
             });
         formattedData =
-                (HCSImageFormattedData) FormatedDataFactory.createFormatedData(directory,
+                (HCSImageFormattedData) FormattedDataFactory.createFormatedData(directory,
                         HCSImageFormat1_0.HCS_IMAGE_1_0, null, formatParameters);
     }
 
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/DirectoryTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/DirectoryTest.java
index d06c00f24d2063d53358a5952e24b762d65f4739..e59ecc893e6c80b453aa09ca15e0842af97b29d3 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/DirectoryTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/DirectoryTest.java
@@ -27,10 +27,10 @@ import java.util.Iterator;
 import org.testng.AssertJUnit;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.IFile;
 import ch.systemsx.cisd.bds.storage.INode;
-import ch.systemsx.cisd.bds.storage.StorageException;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 import ch.systemsx.cisd.common.utilities.FileUtilities;
 
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorageTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorageTest.java
index a17ec92b676dbdbe12d3e5f591ace2dd9c48df58..746077cccc7ecce23cbd8f6b37e24b06cebc4d7b 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorageTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/storage/filesystem/FileStorageTest.java
@@ -21,7 +21,7 @@ import static org.testng.AssertJUnit.assertEquals;
 import org.testng.AssertJUnit;
 import org.testng.annotations.Test;
 
-import ch.systemsx.cisd.bds.storage.StorageException;
+import ch.systemsx.cisd.bds.exception.StorageException;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 
 /**