Assignment 3 built off of assignmnt 2, so they're combined here, with assignment 3 being a branch.