multiplication is incorrect, need to figure out how to parallelize