defmacro defun & removed cache variables(bugs)