implemented step 1