Moved AST and package into separate files