make maybe_iterator constructor private