fileForwarderParameters = ParameterService.get(parameterGroupName);
         try {
             Path path = Paths.get(fileForwarderParameters.getPath());
-            if (!Files.exists(path)) {
+            if (!path.toFile().exists()) {
                 Files.createDirectories(path);
             }
         } catch (final InvalidPathException | IOException e) {
             if (policy instanceof OptimizationPolicy) {
                 forwardPolicy((OptimizationPolicy) policy);
             } else {
-                final String message = new String("Cannot forward policy " + policy
-                        + ". Unsupported policy type " + policy.getClass().getSimpleName());
+                final String message = "Cannot forward policy " + policy
+                     + ". Unsupported policy type " + policy.getClass().getSimpleName();
                 LOGGER.error(message);
                 throw new PolicyForwardingException(message);
             }
 
             running = true;
             while (running) {
                 key = watcher.take();
-
-                for (final WatchEvent<?> event : key.pollEvents()) {
-                    final WatchEvent<Path> ev = (WatchEvent<Path>) event;
-                    final Path fileName = ev.context();
-                    pool.execute(() -> {
-                        LOGGER.debug("new CSAR found: {}", fileName);
-                        DistributionStatisticsManager.updateTotalDistributionCount();
-                        final String fullFilePath = dir.toString() + File.separator + fileName.toString();
-                        try {
-                            waitForFileToBeReady(fullFilePath);
-                            createPolicyInputAndCallHandler(fullFilePath);
-                            LOGGER.debug("CSAR complete: {}", fileName);
-                        } catch (InterruptedException e) {
-                            LOGGER.error("waitForFileToBeReady interrupted", e);
-                            Thread.currentThread().interrupt();
-                        }
-                    });
-                }
+                processFileEvents(dir, key, pool);
                 final boolean valid = key.reset();
                 if (!valid) {
                     LOGGER.error("Watch key no longer valid!");
         }
     }
 
+    private void processFileEvents(Path dir, WatchKey key, ExecutorService pool) {
+        for (final WatchEvent<?> event : key.pollEvents()) {
+            final WatchEvent<Path> ev = (WatchEvent<Path>) event;
+            final Path fileName = ev.context();
+            pool.execute(() -> {
+                LOGGER.debug("new CSAR found: {}", fileName);
+                DistributionStatisticsManager.updateTotalDistributionCount();
+                final String fullFilePath = dir.toString() + File.separator + fileName.toString();
+                try {
+                    waitForFileToBeReady(fullFilePath);
+                    createPolicyInputAndCallHandler(fullFilePath);
+                    LOGGER.debug("CSAR complete: {}", fileName);
+                } catch (InterruptedException e) {
+                    LOGGER.error("waitForFileToBeReady interrupted", e);
+                    Thread.currentThread().interrupt();
+                }
+            });
+        }
+    }
+
     /**
      * Method to create policy input & call policy handlers.
      *