preprocessor v2