fixed comms to be asynchronous