preserve whitespace better