refactoring of include preprocessor