safe proto macros