modified some macros to avoid conflicts