public function iterate()
    {
        $this->current = $this->getNext();
        $this->key = $this->getNextKey();

        $valid = $this->current !== null;

        if ($valid) {
            $this->iterator->next();
        }

        return $valid;
    }