driver refactoring and OOP

reorganize global data and methods according to classes for individual processes; adapt driver to new classes.

riv_temp serves as a template.