function recursive (callable $fn, $mode = RecursiveIteratorIterator::SELF_FIRST)
  {
    $this->setIterator (new RecursiveIteratorIterator (new RecursiveIterator ($this->getIterator (), $fn), $mode));
    return $this;
  }