GroupFeatureState is on the stack so no allocation is necessary (though the constructor does run once per callback per group but no use crying over 20 mov's ;) )