new Makefile magic
more contract kinds. Might need another construct