organize into a translation unit for options to reduce clutter and restructure to have each worker thread responsible for his own stream