now support common lisp like macro