Implementing the AST classes