add a cache to speed up startup