refactoring to ast