adding tests for taxonomy implementations, modifications to api to allow better testing, included more robust hierarchical support