Finished step 5! Wohoo! (still need to thourally test)