abstract search tree