Generalise MessageQueue. Pair: Tim