added parallelization