Renamed some classes and broke the code into more files.