Works up to step 5