Checking in first version of templated BST