added cache.c/h, updated Makefile to match (check back on correctness of this later, though)