use empty string instead of null for robustness