Queue refactor

Addresses issue #232.
IMO, queuebase should hold the D8 implementation. That way we can just discard D6 implementation later. If D6 and D7 are similar enough, D6 can extend D7.