implement step 4