what if the factory could create a new hiearchy filter for each leaf class being scanned?  Then we coudl avoid the confusion of having to reset the filter between runs