Change OutputWaiter to use dict of outputs instead of list LoaderWorker communicates with InputWorker using a messagechannel