new makefile structure