could you please use ``functools.update_wrapper`` on your wrap function to make sure that tracebacks don't get confusing because of this?