completes up to PUT in step 5