Work on bug #7574.  This is the base class.  It still needs to be integrated into the input, output and process drivers.