updated with schwa's macros