fixing group test for demote case, didn't test the right result type
add optimization for group when type is not demotable
add single argument groups like group