replaced OnCompletion with generic interface Callback
replaced OnSuccess with more generic Callback interface
replaced OnFailure with more generic Callback interface