Split classes into separate files

This just made the codebase easier to read/work with for me.