add cache.cpp