added grouptotal()