push error handling macros. looking good