Can this not be implemented with ```Traversing```?