clean more aggressively in Makefile
Use a trait instead of a struct-of-fns