Modified compiler - expects an executor service rather than creating it itself. This allows other application to stop the ExecutorService if required.