TITLE: Handling functions with large numbers of args PROBLEM: Users of C++ often run into functions which have large numbers of parameters. This often occurs gradually over time. In addition, later changes often add arguments with default values. The result becomes unweildy and difficult to maintain. One technique for handling this is called "reification" - making an object out of the function. The stucture of this object mirrors the function and its arguments quite nicely. The function arguments are mapped into object data members, and the function itself becomes a method of the object. A partial list of advantages of this technique are: - the object state can be completely set as part of the constructor, - clients can use access methods to "tweak" the object state prior to invoking the method, - code maintainers are no longer constrained by the first appearanc of a default value for an argument, - multiple constructors can provide different initial states, and - overloading the single method can provide different modes of using the function.