split off the worker logic
set up round robin with only one thread for now
go back to using pipes and go to multiple threads
make out ports configurable