traverse map via iterator