preserving whitespaces so that code blocks aren't screwed up