Can't plugins already do custom reasons by throwing custom events somehow?