tweaked BasicConsume to support channel passing