These changes are based on our discussion earlier this week. Adding async, and making it possible to short circuit, which should be better aligned with the requirments of versioning.