* diff modules are now derived from a base class that defines an API.