add an empty_modification to the list before computing product
drop duplicates before product
need to ignore index