step 1~5