Subclasses of object workflow are responsible for different inputs.

Removes lots of code duplication.