add async_options support