Refactor to have iterative and Recursive BST