working on message queues, needs more (re)work