with async invocation and progress reporting mechanisms