if you return a result, you should not modify the arguments.