first pass on using parse tree. has some false negatives.