Finished Step 1, 3/5 functions of step 2 left to implement.