adds HasValue and HasNoValue