dealing with message queues and asynchronous components