This is a hard question :). I think the filter allows you to change the value of whole group, as the group is the actual field you're filtering. So, $old and $new are arrays (of sub-field values). I guess you're using a cloneable group? If so, then $old and $new are arrays (of clones), each clone is an array of sub-fields.