first shall default to nil