added intersection iterator; works with clang but not gcc!