concept ConceptWithChangeListeners > Concept is IHasChangeListeners, ChangeTriggerable { event fireChange; void _onChange :: after { fireChange(); } public void change { super.change(); } }