could this implement std::iterator::Iterator now?