arguments.callee is not recommended