factored out MultiQueue into it's own header file