Finished writing out the outline of the project.  Test cases will pass,
still need to optimize and clean up the code a bit