Added our code from Project 2, since it will serve as a nearly complete
base for Project 3