Introduce asynchronous callback interface