Add support for async setup and teardown functions