default empty strings, after trims() inserted in previous commit may
operate on null otherwise