return undef for missing values