default cannot be empty string