Further abstracted into reusable classes 'WorkerThread' and 'ThreadPoolChain'.