add events mixin to handle dispatcher subscriptions w/o memory leaks