[refactor] Caches now with a constructor/instance api