Async support and more generic type parameters