Refactored mostly the file structure. Not touched much code. All of the
code still needs to be refactored.