ExecutorService and some minor changes are committed