refactor search tree interface