implementation step 1/many