I don't think we should accept `undefined` & `null` here, should we ?