Add basic job/task framework