mixin Observable { final listeners = {}; void addListener(void Function() listener) { listeners.add(listener); } void removeListener(void Function() listener) { listeners.remove(listener); } void notifyListeners() { for (var listener in listeners) { listener(); } } }