refactor ast creation parts so we now keep all open/else/close tags in blocks.