supports multiple: dup/map