Add caching adapter

initial caching stuff

caching