My current IVR app uses a wrapper class with several methods to call a web service and then parse its results. Each class has a single "invoke" method which calls the web service, and then calls subsequent submethods to break up the parsing into logical chunks.

Whenever a new input argument is needed in one or more of the submethods, the previous developer would add it as an argument on the invoke, and then add it as an argument on the submethods.

Is this the proper way to do this, or would it be *better* to set a field on the class, and then reference that whenever necessary? 

Instead of: 

```
 invoke (oldField1, oldField2, newField1)  
 submethod1 (results, oldField1, oldField2, newField1)  
 submethod2 (results, oldField1, oldField2, newField1)  

```

Should it be: 

```
 invoke(oldField1, oldField2, newField1){
   OldField1=oldField1
   OldField2=oldField2
   NewField1=newField1
 }
 submethod1(results)
 submethod2(results)

```

Or even:

```
 new (oldField1, oldField2, newField1){
   OldField1=oldField1
   OldField2=oldField2
   NewField1=newField1
 }
 invoke()
 submethod1(results)
 submethod2(results)

```

Thanks!