move WorkQueue into common