Use work_queue instead of thread