groupListener now accommodates MVC patterns and standalone functions