add cache.c