add shuffling feature