This should work, since `Nodes` already implements DEE. ```rust impl<'a, 'b> DoubleEndedIterator for Select<'a, 'b> { fn next_back(&mut self) -> Option<Self::Item> { for node in self.inner.by_ref().rev() { if let Some(element) = ElementRef::wrap(node) { if element.parent().is_some() && self.selector.matches(&element) { return Some(element); } } } None } } ```