re-organize makefile