Documentation and Declarations

I added an excessively large amount of comments explaining what i've
thought about designing and executing this project, and I believe I've
declared every function that will be needed.