allowing preprocessors to optionally modify and return their inputs