shape takes strings only, no missing values