implemented group functions