Also, why are you dispatching to all the widgets? wouldn't `self.dispatch('on_pause', widget)` enough? And, looking at the other functions, e.g. `def start(self, widget):` they all take a widget parameter on which this animation is applied. This should probably behave similarly, if it makes sense. Also, `self._widgets` is dict of widget uids, so I'm not sure it even makes to dispatch that.