improve steps 1 and 2