implement parallel processing