I think the iterator declaration is even more confusing than the auto :D