rewriting the event system, trigger/on has too many complications