implemented step 2