Done all code for step 2, need to test