Refactor to use worker base class