Replace promise with object-specific callbacks to allow multiple firings