Abstracted classes into their own files.
finishing cleanup