modify functions, reduce shuffle