makefile implementation, not final