worked around arguments.callee