i implemented a cache