If the preprocess is nil, that means DONOT make changes.

preprocess of empty list however means replace with nothing.