improved makefile and directories to seperate source, .o, and executables