update "group" function