scratch tree.
new apporach: big-time rewrite