discarding extraneous whitespace