Abstracted Makefile + cleanup