BST works, less switch statements