a bunch of work on groups