Update receive() to return handle for callback removal