further cleanup. first parallelization