abstracted out some boilerplate
more progress - 1
finish groups notification refactoring