pass 9 test cases, except sub class(tree visitor)