more algorithms support Iterables