implement and test preprocessors