Working on making bst work for arbitrary data types. Still a little buggy.