add iterator in smartmap