redesigned likely_ast to support reference counting