implement step 1