added group internal function