Revamped the structure of the code to make it more modular. Also changed the makefile. Now the only time it needs to be added to is when there's a new module.