beginning implementation of cache classes