refactoring AST block construction