Refactor to have abstract base class for pipeline steps