speed improvements
* use os.listdir instead of os.walk
* implement balancing when loading a list into bst
* some code cleanup