several changes to the preprocessor