Refactor Worker.add

Refactored the Worker.add method to make it more readable. Breaks out
some of the email/error logic for across the module.