complete balance_tree design but not test