new implementation based on Thursdays discussion

doesn't use threading or transmission queues.  that can be v1.1