replaced original function with a spy. not fully working

Function is rewritten perfectly and original function is called, but it's caller is not the original caller and we need
caller to get calling expression for argument parsing.

Tried to play with apply, call. No luck. Should try later but .call/.apply are the solutions here to pass context I believe