code can now be parallelized