attempt to work around InputIterator