I believe the visibility into the Job's engine reference is a violation of responsibility. job.Eng should be job.eng and any interactions should be abstracted by the Job itself.