finished ripping thread code out of chatchannel. marked all methods modifying listeners as synchronized, changed message queue to a unbounded LinkedBlockingQueue.