Templated BST