add a abstract func 'prepareJob' for every job