trailing whitespace removed