change syntax of defmacro