attemt to add function-like macros.  right now they like to segfault