works up to step 89