better makefile, change file organization