starting to implement a better AST system.