Make add() return whether or not it was cancelled by a listener [ci skip]