updated message passing with something that should be thread safe