preprocessor macros fix and additions