Improved makefile and split up headers