updated cache API to async; reworked default cache