adding requires_async_defer support