threaded message passers working, still need to figure out blocking and
such