Added Iterable2 (able to throw generic exception) and Functor interface