The default scheme for each processing step in a simulation cycle is to call the virtual method process after all the inputs have been updated. This however can be modified if required by overriding another virtual method called processStages. By default it just calls process, but there may be new classes of simulation objects that require more than this one stage version. It would not be useful to do this for just one object, as it can just be done in the process method. However, for defining a new class of objects, it could be useful, and in fact this mechanism is used in implementing the ProcessReader and ProcessWriter classes, which have two stages - the process, then the read/write.