restructure Makefile