reoganize to prepare for flush_kthread_work reimplementation