no trailing whitespace