add allowDup option