public function consume(callable $callback = null, $flags = AMQP_NOPARAM, $consumer_tag = null) {

        $this->last_envelope = null;

        $this->setupConsume($flags, $consumer_tag);

        while(count($this->channel->_getChannel()->callbacks) > 0){
            $this->channel->_getChannel()->wait();
            //Will unblock when there's a message
            //This handling might need to be extended to receive a batch.
            //Need to MITM the callback for the message.
            call_user_func($callback, $this->last_envelope);
        }

    }