Add an optional reason parameter to callbacks. #3