Additional Error Handling, onFailure is now required