move to using queues for inter-thread communication.  Simulator now controled by a queue