Change to wait for result.
Add ability to cancel callback.