vote dispatch now handled by VoteEventListener to support cancelled votes