added cache and cache manager logic.  not yet complete