the makefile is now even more complicated