Added message_consumer

Yet to figure out how to really test it though
resolved merge conflicts