Empty lines are not removed during parsing. They are pretty-padded with whitespaces - not good. Reimplement preprocess with nesting?