add support for forward-ranges