rewrite the symmetric tree, bug last version