Refactor: split out doDelete() from deleteEvent().