Improve the preprocessor