refactoring libbun.ast