Interface instead of implementation for Async