performance improvements. Step 2
parallel step 3
parallel step 3