refactored 'on' -> 'calls' to be able to later couple promises with event emitters