Seperated sync from async caches, big refactor. Breaking changes.