rewrite for dlisp