concurrent implementation using ForkJoinPool