move defmacro to a macro it's self