A rewrite of the starter code, refactored to accommodate our project

Feel free to review this. Let me know what you think.