BST - done it recursively