step 3 -- lots of ???