refactored for job events