use 1 iterator and more cleanup