Do not use a Resolver object

Also, centralize the use of _defer()