fix ast tagging. etc
improve error message(wip)