basic group API in place; more code cleaned up