refactoring in libbun.ast