don't generate trailing whitespace