`descendents` is also very expensive. i think we may need to take a more thoughtful approach to the performance of this feature.