make caching nicer