Switched to an indexedDB based back-end. Since that has an asynchronous api, it required touching pretty much everything.