preprocessor api