cleaned up some of the classes and seperated into their own files.