revert the implementation to previous version, but changed it such that prior is not used. used advance instead which is ok for forward iterators.