add iterators, remplace map by hash