Custom preprocessor