add async & deferred, and simple implementation of `fmap`s