added external pointer macros