some weird redundancy with a workqueue?