Initial checkin of caching layer implementation