error catching and parallelization