restructuring stuff into various files for easier navigation