Queue messages

I've added message queueing, rather than rely on a field. The field was
getting overwritten before processing so messages were getting missed.

** I don't have all the hardware so this change HAS NOT BEEN TESTED **
if there are any issues, feel free to discard these changes.