Add comments to explain the thought process and structure of the AST