yes, I would see this check exactly after `func` initialization to avoid possible overhead