diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/DataMover.java b/datamover/source/java/ch/systemsx/cisd/datamover/DataMover.java
index 0933125a80305a2a834c209c22e638ebee3b85d4..00277d8aea7e7e3436558cc9d8cc22f5fea79608 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/DataMover.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/DataMover.java
@@ -32,7 +32,6 @@ import ch.systemsx.cisd.common.utilities.TimerHelper;
 import ch.systemsx.cisd.common.utilities.TriggeringTimerTask;
 import ch.systemsx.cisd.datamover.filesystem.FileStoreFactory;
 import ch.systemsx.cisd.datamover.filesystem.RemoteMonitoredMoverFactory;
-import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
 import ch.systemsx.cisd.datamover.utils.LocalBufferDirs;
@@ -68,26 +67,26 @@ public class DataMover
      * 
      * @return object which can be used to terminate the process and all its threads
      */
-    public static final ITerminable start(Parameters parameters, IFileSysOperationsFactory factory)
+    public static final ITerminable start(final Parameters parameters, final IFileSysOperationsFactory factory)
     {
         return start(parameters, factory, createLocalBufferDirs(parameters));
     }
 
-    private static LocalBufferDirs createLocalBufferDirs(Parameters parameters)
+    private static LocalBufferDirs createLocalBufferDirs(final Parameters parameters)
     {
         return new LocalBufferDirs(parameters.getBufferDirectoryPath(), LOCAL_COPY_IN_PROGRESS_DIR,
                 LOCAL_COPY_COMPLETE_DIR, LOCAL_READY_TO_MOVE_DIR, LOCAL_TEMP_DIR);
     }
 
     /** Allows to specify buffer directories. Exposed for testing purposes. */
-    public static final ITerminable start(Parameters parameters, IFileSysOperationsFactory factory,
-            LocalBufferDirs localBufferDirs)
+    public static final ITerminable start(final Parameters parameters, final IFileSysOperationsFactory factory,
+            final LocalBufferDirs localBufferDirs)
     {
         return new DataMover(parameters, factory, localBufferDirs).start();
     }
 
-    private DataMover(Parameters parameters, IFileSysOperationsFactory factory,
-            LocalBufferDirs bufferDirs)
+    private DataMover(final Parameters parameters, final IFileSysOperationsFactory factory,
+            final LocalBufferDirs bufferDirs)
     {
         this.parameters = parameters;
         this.factory = factory;
@@ -154,7 +153,7 @@ public class DataMover
 
     private final DataMoverProcess createOutgoingMovingProcess()
     {
-        final FileStore outgoingStore = parameters.getOutgoingStore(factory);
+        final IFileStore outgoingStore = parameters.getOutgoingStore(factory);
         final File readyToMoveDir = bufferDirs.getReadyToMoveDir();
         final IFileStore readyToMoveStore =
                 FileStoreFactory.createLocal(readyToMoveDir, "ready-to-move", factory);
@@ -170,7 +169,7 @@ public class DataMover
         return new DataMoverProcess(outgoingMovingTask, "Final Destination Mover");
     }
 
-    private IStoreHandler createRemotePathMover(IFileStore source, FileStore destination)
+    private IStoreHandler createRemotePathMover(final IFileStore source, final IFileStore destination)
     {
         return RemoteMonitoredMoverFactory.create(source, destination, parameters);
     }
@@ -182,7 +181,7 @@ public class DataMover
                 public boolean terminate()
                 {
                     boolean ok = true;
-                    for (ITerminable terminable : terminables)
+                    for (final ITerminable terminable : terminables)
                     {
                         ok = ok && terminable.terminate();
                     }
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java b/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
index 4fd17c59f3fa7b24693f802883d1b261661c2372..3a0a2ab7cfa6f3c1f5ca76245b1c1f8d4f2e745a 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/IncomingProcessor.java
@@ -35,7 +35,6 @@ import ch.systemsx.cisd.common.utilities.StoreItem;
 import ch.systemsx.cisd.datamover.common.MarkerFile;
 import ch.systemsx.cisd.datamover.filesystem.FileStoreFactory;
 import ch.systemsx.cisd.datamover.filesystem.RemoteMonitoredMoverFactory;
-import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IExtendedFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
@@ -117,7 +116,7 @@ public class IncomingProcessor implements IRecoverableTimerTaskFactory
         }
         return filterBank;
     }
-    
+
     public TimerTask createRecoverableTimerTask()
     {
         return new IncomingProcessorRecoveryTask();
@@ -127,8 +126,9 @@ public class IncomingProcessor implements IRecoverableTimerTaskFactory
     {
         final IStoreHandler pathHandler = createIncomingMovingPathHandler();
         final DirectoryScanningTimerTask movingTask =
-                new DirectoryScanningTimerTask(new FileScannedStore(incomingStore,
-                        storeItemFilter), bufferDirs.getCopyInProgressDir(), pathHandler,
+                new DirectoryScanningTimerTask(
+                        new FileScannedStore(incomingStore, storeItemFilter), bufferDirs
+                                .getCopyInProgressDir(), pathHandler,
                         NUMBER_OF_ERRORS_IN_LISTING_IGNORED);
         return new DataMoverProcess(movingTask, "Mover of Incoming Data", this);
     }
@@ -216,7 +216,7 @@ public class IncomingProcessor implements IRecoverableTimerTaskFactory
     }
 
     private IStoreHandler createRemotePathMover(final IFileStore sourceDirectory,
-            final FileStore destinationDirectory)
+            final IFileStore destinationDirectory)
     {
         return RemoteMonitoredMoverFactory
                 .create(sourceDirectory, destinationDirectory, parameters);
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java b/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
index 0794ff1bbc708f5d152c8efe6e03c5a26f748fb4..790d7fc033b33857e6ec58a46ddd920739c953d6 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/Parameters.java
@@ -45,7 +45,7 @@ import ch.systemsx.cisd.common.utilities.IExitHandler;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.common.utilities.SystemExit;
 import ch.systemsx.cisd.datamover.filesystem.FileStoreFactory;
-import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
+import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
 import ch.systemsx.cisd.datamover.intf.IFileSysParameters;
 import ch.systemsx.cisd.datamover.intf.ITimingParameters;
@@ -605,7 +605,7 @@ public final class Parameters implements ITimingParameters, IFileSysParameters
     /**
      * @return The store to monitor for new files and directories to move to the buffer.
      */
-    public final FileStore getIncomingStore(final IFileSysOperationsFactory factory)
+    public final IFileStore getIncomingStore(final IFileSysOperationsFactory factory)
     {
         return FileStoreFactory.createStore(incomingDirectory, INCOMING_KIND_DESC, incomingHost,
                 treatIncomingAsRemote, factory);
@@ -622,7 +622,7 @@ public final class Parameters implements ITimingParameters, IFileSysParameters
     /**
      * @return The store to copy the data to.
      */
-    public final FileStore getOutgoingStore(final IFileSysOperationsFactory factory)
+    public final IFileStore getOutgoingStore(final IFileSysOperationsFactory factory)
     {
         return FileStoreFactory.createStore(outgoingDirectory, OUTGOING_KIND_DESC, outgoingHost,
                 true, factory);
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreFactory.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreFactory.java
index fd45bba54cd560e091a5786842eccc23d54f3c9a..80d0a19dd98f1510a8382660128a82c87c17f57b 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreFactory.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/FileStoreFactory.java
@@ -20,6 +20,7 @@ import java.io.File;
 
 import ch.systemsx.cisd.common.highwatermark.FileWithHighwaterMark;
 import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
+import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
 import ch.systemsx.cisd.datamover.filesystem.store.FileStoreLocal;
 import ch.systemsx.cisd.datamover.filesystem.store.FileStoreRemote;
@@ -30,8 +31,6 @@ import ch.systemsx.cisd.datamover.filesystem.store.FileStoreRemoteMounted;
  * 
  * @author Tomasz Pylak
  */
-// TODO 2008-05-13, Christian Ribeaud: This factory should return IFileStore and not the concrete
-// class FileStore.
 public final class FileStoreFactory
 {
     private FileStoreFactory()
@@ -42,7 +41,7 @@ public final class FileStoreFactory
     /**
      * use when file store is on a local host.
      */
-    public static final FileStore createLocal(final FileWithHighwaterMark path, final String kind,
+    public static final IFileStore createLocal(final FileWithHighwaterMark path, final String kind,
             final IFileSysOperationsFactory factory)
     {
         return new FileStoreLocal(path, kind, factory);
@@ -51,14 +50,14 @@ public final class FileStoreFactory
     /**
      * use when file store is on a local host.
      */
-    public static final FileStore createLocal(final File readyToMoveDir, final String string,
+    public static final IFileStore createLocal(final File readyToMoveDir, final String string,
             final IFileSysOperationsFactory factory)
     {
         return createLocal(new FileWithHighwaterMark(readyToMoveDir), string, factory);
     }
 
     /** use when file store is on a remote share mounted on local host */
-    public static final FileStore createRemoteShare(final FileWithHighwaterMark path,
+    public static final IFileStore createRemoteShare(final FileWithHighwaterMark path,
             final String kind, final IFileSysOperationsFactory factory)
     {
         return new FileStoreRemoteMounted(path, kind, factory);
@@ -69,7 +68,7 @@ public final class FileStoreFactory
      * 
      * @param factory
      */
-    public static final FileStore createRemoteHost(final FileWithHighwaterMark path,
+    public static final IFileStore createRemoteHost(final FileWithHighwaterMark path,
             final String host, final String kind, final IFileSysOperationsFactory factory)
     {
         return new FileStoreRemote(path, host, kind, factory);
@@ -80,7 +79,7 @@ public final class FileStoreFactory
      * 
      * @param factory
      */
-    public static final FileStore createRemoteHost(final File path, final String host,
+    public static final IFileStore createRemoteHost(final File path, final String host,
             final String kind, final IFileSysOperationsFactory factory)
     {
         return createRemoteHost(new FileWithHighwaterMark(path), host, kind, factory);
@@ -89,7 +88,7 @@ public final class FileStoreFactory
     /**
      * Returns the most convenient <code>IFileStore</code> implementation with given <var>values</var>.
      */
-    public final static FileStore createStore(final File path, final String kind,
+    public final static IFileStore createStore(final File path, final String kind,
             final String hostOrNull, final boolean isRemote, final IFileSysOperationsFactory factory)
     {
         return createStore(new FileWithHighwaterMark(path), kind, hostOrNull, isRemote, factory);
@@ -98,7 +97,7 @@ public final class FileStoreFactory
     /**
      * Returns the most convenient <code>IFileStore</code> implementation with given <var>values</var>.
      */
-    public final static FileStore createStore(final FileWithHighwaterMark path, final String kind,
+    public final static IFileStore createStore(final FileWithHighwaterMark path, final String kind,
             final String hostOrNull, final boolean isRemote, final IFileSysOperationsFactory factory)
     {
         if (hostOrNull != null)
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java
index 0f2ce786b02d085ee641bc140219943e1d6851bb..0f739f8dfa46d38d8afd1996e884f14083242b68 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/RemoteMonitoredMoverFactory.java
@@ -17,7 +17,6 @@
 package ch.systemsx.cisd.datamover.filesystem;
 
 import ch.systemsx.cisd.common.utilities.IStoreHandler;
-import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IStoreCopier;
 import ch.systemsx.cisd.datamover.filesystem.remote.CopyActivityMonitor;
@@ -43,7 +42,7 @@ public final class RemoteMonitoredMoverFactory
      * @param parameters The timing parameters used for monitoring and reporting stall situations.
      */
     public static final IStoreHandler create(final IFileStore sourceDirectory,
-            final FileStore destinationDirectory, final ITimingParameters parameters)
+            final IFileStore destinationDirectory, final ITimingParameters parameters)
     {
         final IStoreCopier copier = sourceDirectory.getCopier(destinationDirectory);
         final CopyActivityMonitor monitor =
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java
index 965eb8b69aa92c5cdae7d17bf3c971de5eb64cfa..a52a15d401a5f99841f3d10be9c5798e0508022c 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/FileStore.java
@@ -78,12 +78,6 @@ public abstract class FileStore implements IFileStore
         }
     }
 
-    public final StoreItemLocation getStoreItemLocation(StoreItem item)
-    {
-        return new StoreItemLocation(hostOrNull, StoreItem.asFile(getPath(), item)
-                .getAbsolutePath());
-    }
-
     protected final File getPath()
     {
         return fileWithHighwaterMark.getFile();
@@ -106,13 +100,13 @@ public abstract class FileStore implements IFileStore
 
     // does not take into account the fact, that the destination cannot be overwritten and must be
     // deleted beforehand
-    protected final IStoreCopier constructStoreCopier(final FileStore destinationDirectory,
+    protected final IStoreCopier constructStoreCopier(final IFileStore destinationDirectory,
             final boolean requiresDeletionBeforeCreation)
     {
         final IPathCopier copier = factory.getCopier(requiresDeletionBeforeCreation);
         final String srcHostOrNull = hostOrNull;
-        final String destHostOrNull = destinationDirectory.hostOrNull;
-        final File destPath = destinationDirectory.getPath();
+        final String destHostOrNull = ((FileStore) destinationDirectory).hostOrNull;
+        final File destPath = ((FileStore) destinationDirectory).getPath();
         return new IStoreCopier()
             {
                 public Status copy(final StoreItem item)
@@ -141,6 +135,12 @@ public abstract class FileStore implements IFileStore
             };
     }
 
+    public final StoreItemLocation getStoreItemLocation(final StoreItem item)
+    {
+        return new StoreItemLocation(hostOrNull, StoreItem.asFile(getPath(), item)
+                .getAbsolutePath());
+    }
+
     /**
      * Returns <code>true</code>, if the file store resides on a remote computer and
      * <code>false</code> otherwise.
@@ -148,6 +148,7 @@ public abstract class FileStore implements IFileStore
      * Note that even if this method returns <code>true</code> paths on this file system might be
      * reached via local file system operation, if the remote file system is provided as a remote
      * share and mounted via NFS or CIFS.
+     * </p>
      */
     public final boolean isRemote()
     {
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java
index 0c6f06ec71420cdedc18b74f919a33de586d5337..4bcf53b53e47002a3540fd37157b2b3ab3a8514c 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/IFileStore.java
@@ -106,7 +106,7 @@ public interface IFileStore extends ISelfTestable
      *            must be readable and writable. Copier will override the destination item if it
      *            already exists.
      */
-    public IStoreCopier getCopier(FileStore destinationDirectory);
+    public IStoreCopier getCopier(IFileStore destinationDirectory);
 
     // returned description should give the user the idea about file location. You should not use
     // the result for
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/StoreItemLocation.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/StoreItemLocation.java
index 50734476cbe57875a01a7b87f0d4a8780138db36..751075558ca42b3fd3e4ba1fe6454a7fde440120 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/StoreItemLocation.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/intf/StoreItemLocation.java
@@ -19,21 +19,22 @@ package ch.systemsx.cisd.datamover.filesystem.intf;
 import ch.systemsx.cisd.common.utilities.StoreItem;
 
 /**
- * Bean for the location of a {@link StoreItem} on a local or remote file system.  
- *
+ * Bean for the location of a {@link StoreItem} on a local or remote file system.
+ * 
  * @author Franz-Josef Elmer
  */
-public class StoreItemLocation
+public final class StoreItemLocation
 {
     private final String host;
+
     private final String absolutePath;
 
     /**
      * Creates a new instance for the specified host and absolute path.
-     *
+     * 
      * @param hostOrNull If not <code>null</code> the file is on a remote file system.
      */
-    public StoreItemLocation(String hostOrNull, String absolutePath)
+    public StoreItemLocation(final String hostOrNull, final String absolutePath)
     {
         if (absolutePath == null)
         {
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java
index aadfe1d2372e6a83cbc233e4953b14f197aaf2e3..487cfbd0534b2e06e4e4bbfd502b632ed53a4d6f 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreLocal.java
@@ -106,7 +106,7 @@ public class FileStoreLocal extends FileStore implements IExtendedFileStore
         return FileUtilities.checkDirectoryFullyAccessible(getPath(), getDescription());
     }
 
-    public final IStoreCopier getCopier(final FileStore destinationDirectory)
+    public final IStoreCopier getCopier(final IFileStore destinationDirectory)
     {
         boolean requiresDeletion = false;
         final IStoreCopier simpleCopier =
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemote.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemote.java
index 2789c72fbd1cda9ac6160a1cf97148fae5a50e18..a2da62ea5c25570088adb44db72243628054dd30 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemote.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemote.java
@@ -33,6 +33,7 @@ import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.utilities.StoreItem;
 import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IExtendedFileStore;
+import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
 import ch.systemsx.cisd.datamover.filesystem.intf.IStoreCopier;
 
@@ -97,7 +98,7 @@ public class FileStoreRemote extends FileStore
         return factory.getCopier(false).existsRemotely(getPath(), tryGetHost());
     }
 
-    public final IStoreCopier getCopier(final FileStore destinationDirectory)
+    public final IStoreCopier getCopier(final IFileStore destinationDirectory)
     {
         final boolean requiresDeletion = false;
         return constructStoreCopier(destinationDirectory, requiresDeletion);
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemoteMounted.java b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemoteMounted.java
index 6fd2afd575a8fa7d4b130c7c555e5ac2d0dde337..5499b15470567613e1cdac563c0992651ed51903 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemoteMounted.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/filesystem/store/FileStoreRemoteMounted.java
@@ -25,6 +25,7 @@ import ch.systemsx.cisd.common.logging.ISimpleLogger;
 import ch.systemsx.cisd.common.utilities.StoreItem;
 import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IExtendedFileStore;
+import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileSysOperationsFactory;
 import ch.systemsx.cisd.datamover.filesystem.intf.IStoreCopier;
 
@@ -56,7 +57,7 @@ public final class FileStoreRemoteMounted extends FileStore
         return null;
     }
 
-    public final IStoreCopier getCopier(final FileStore destinationDirectory)
+    public final IStoreCopier getCopier(final IFileStore destinationDirectory)
     {
         final boolean requiresDeletion = false;
         return constructStoreCopier(destinationDirectory, requiresDeletion);
diff --git a/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java b/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
index e56ce321fd12ad5284843510da3a0efff729cb93..b276e5978a5322639892f268b757ad569d0c8d49 100644
--- a/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
+++ b/datamover/source/java/ch/systemsx/cisd/datamover/utils/DataCompletedFilter.java
@@ -31,8 +31,6 @@ import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.StoreItemLocation;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 public class DataCompletedFilter implements IStoreItemFilter
@@ -40,13 +38,17 @@ public class DataCompletedFilter implements IStoreItemFilter
     private static final class Status extends AbstractHashable
     {
         static final Status NULL = new Status();
-        
+
         private final boolean ok;
+
         private final boolean run;
+
         private final boolean terminated;
+
         private final int exitValue;
+
         private final boolean blocked;
-        
+
         private Status()
         {
             ok = true;
@@ -56,7 +58,7 @@ public class DataCompletedFilter implements IStoreItemFilter
             exitValue = Integer.MAX_VALUE;
         }
 
-        Status(ProcessResult processResult)
+        Status(final ProcessResult processResult)
         {
             ok = processResult.isOK();
             run = processResult.isRun();
@@ -64,7 +66,7 @@ public class DataCompletedFilter implements IStoreItemFilter
             blocked = processResult.hasBlocked();
             exitValue = processResult.exitValue();
         }
-        
+
         public final boolean isOk()
         {
             return ok;
@@ -90,7 +92,7 @@ public class DataCompletedFilter implements IStoreItemFilter
             return blocked;
         }
     }
-    
+
     private static final Logger operationLog =
             LogFactory.getLogger(LogCategory.OPERATION, DataCompletedFilter.class);
 
@@ -99,15 +101,17 @@ public class DataCompletedFilter implements IStoreItemFilter
 
     private final static Logger notificationLog =
             LogFactory.getLogger(LogCategory.NOTIFY, DataCompletedFilter.class);
-    
+
     private final IFileStore fileStore;
+
     private final String dataCompletedScript;
+
     private final long dataCompletedScriptTimeout;
-    
-    private Status lastStatus = Status.NULL; 
 
-    public DataCompletedFilter(IFileStore fileStore, String dataCompletedScript,
-            long dataCompletedScriptTimeout)
+    private Status lastStatus = Status.NULL;
+
+    public DataCompletedFilter(final IFileStore fileStore, final String dataCompletedScript,
+            final long dataCompletedScriptTimeout)
     {
         if (dataCompletedScript == null)
         {
@@ -121,18 +125,18 @@ public class DataCompletedFilter implements IStoreItemFilter
         }
         this.fileStore = fileStore;
     }
-    
-    public boolean accept(StoreItem item)
+
+    public boolean accept(final StoreItem item)
     {
-        List<String> commandLine = createCommand(item);
-        ProcessResult result =
+        final List<String> commandLine = createCommand(item);
+        final ProcessResult result =
                 ProcessExecutionHelper.run(commandLine, dataCompletedScriptTimeout, operationLog,
                         machineLog);
-        Status status = new Status(result);
-        boolean ok = status.isOk();
+        final Status status = new Status(result);
+        final boolean ok = status.isOk();
         if (status.equals(lastStatus) == false)
         {
-            String message =
+            final String message =
                     "Processing status of data completed script has changed to " + status
                             + ". Command line: " + commandLine;
             if (ok)
@@ -151,14 +155,14 @@ public class DataCompletedFilter implements IStoreItemFilter
         return ok;
     }
 
-    private List<String> createCommand(StoreItem item)
+    private List<String> createCommand(final StoreItem item)
     {
-        StoreItemLocation storeItemLocation = fileStore.getStoreItemLocation(item);
-        List<String> command = new ArrayList<String>();
+        final StoreItemLocation storeItemLocation = fileStore.getStoreItemLocation(item);
+        final List<String> command = new ArrayList<String>();
         command.add("sh");
         command.add(dataCompletedScript);
         command.add(storeItemLocation.getAbsolutePath());
-        String host = storeItemLocation.getHost();
+        final String host = storeItemLocation.getHost();
         if (host != null)
         {
             command.add(host);
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/SelfTestTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/SelfTestTest.java
index aade926ab3a1dd1bdcab3a9be65ee6a6209db607..a9552fd336c095124f38945d00c44eef478baa93 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/SelfTestTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/SelfTestTest.java
@@ -29,7 +29,6 @@ import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.logging.LogInitializer;
 import ch.systemsx.cisd.common.utilities.FileUtilities;
 import ch.systemsx.cisd.datamover.filesystem.FileStoreFactory;
-import ch.systemsx.cisd.datamover.filesystem.intf.FileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IFileStore;
 import ch.systemsx.cisd.datamover.filesystem.intf.IPathCopier;
 import ch.systemsx.cisd.datamover.testhelper.FileOperationsUtil;
@@ -49,7 +48,7 @@ public class SelfTestTest
 
     private static final File incomingDirectory = new File(workingDirectory, "local/incoming");
 
-    private static final FileStore incomingStore = createLocalStore(incomingDirectory, "incoming");
+    private static final IFileStore incomingStore = createLocalStore(incomingDirectory, "incoming");
 
     private static final File bufferDirectory = new File(workingDirectory, "local/buffer");
 
@@ -138,7 +137,7 @@ public class SelfTestTest
     public void testHappyCaseWithRemoteHost()
     {
         final String outgoingHost = "some_remote_host";
-        final FileStore remoteHostOutgoingStore =
+        final IFileStore remoteHostOutgoingStore =
                 createRemoteStore(outgoingDirectory, outgoingHost, "outgoing");
         SelfTest.check(mockCopier, remoteHostOutgoingStore);
     }
@@ -161,18 +160,18 @@ public class SelfTestTest
     public void testNonExistentPaths()
     {
         final File nonExistentIncomingDirectory = new File(workingDirectory, "data");
-        final FileStore nonExistentIncomingStore =
+        final IFileStore nonExistentIncomingStore =
                 createLocalStore(nonExistentIncomingDirectory, "incoming");
         SelfTest.check(mockCopier, nonExistentIncomingStore, bufferStore, outgoingStore);
     }
 
-    private FileStore createRemoteStore(File path, String host, String description)
+    private final IFileStore createRemoteStore(File path, String host, String description)
     {
         return FileStoreFactory.createRemoteHost(path, host, description, FileOperationsUtil
                 .createTestFatory());
     }
 
-    private static FileStore createLocalStore(File path, String description)
+    private final static IFileStore createLocalStore(File path, String description)
     {
         return FileStoreFactory.createLocal(path, description, FileOperationsUtil
                 .createTestFatory());
diff --git a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/CopyActivityMonitorTest.java b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/CopyActivityMonitorTest.java
index 23afc6d3e3c4f908e5be3e7041035a3dd6936a3d..2464e10647941f13c1d5861589261414a10bd0bf 100644
--- a/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/CopyActivityMonitorTest.java
+++ b/datamover/sourceTest/java/ch/systemsx/cisd/datamover/filesystem/remote/CopyActivityMonitorTest.java
@@ -206,7 +206,7 @@ public class CopyActivityMonitorTest
                     return localImpl.tryAsExtended();
                 }
 
-                public IStoreCopier getCopier(FileStore destinationDirectory)
+                public IStoreCopier getCopier(IFileStore destinationDirectory)
                 {
                     return localImpl.getCopier(destinationDirectory);
                 }