Rearranging files
Major cleanup and refactoring