lint
tree traversal
fix merge