Require relative

I pulled the classes into their own files and fixed a few minor issues.

A few style suggestions.

1. Replace tabs with two whitespaces
2. Enable highlighting trailing whitespaces in your editor so you can delete them
3. Indentation - compare my code to yours to see how I indent