more progress in background job abstraction