kind of work. need to suppot parser tree and token stream