why you can't just pass `createCache` rather than an anon func?