while we're at it, can we get rid of `arguments.callee` since it has been deprecated?
We should be able to just put `func` in there instead.