Restructured the project into seperate files and modules in order to keep the code better seperated.