finally some preprocessor moves