working on step2, step3