added some parallel processing