added FailureCallback and SuccessCallback, moved callback implementations to separate namespace