now using Runtime.getRuntime().availableProcessors() instead of hardcoded number of threads;
reformating and imports optimizing;