added group/task listeners to organize how changes are handled