refactored CallResult