use auto variables and implicit iterators