added base AST class