Making things a bit easier to read in the source, splitting classes out into their own files