Can be replaced by the declarative "modelListeners".