deal with caches, update TODO