re-design the JobManager