refactored out the initialize methods for clients and producers, and freeing memory now for clients.threads as well as printers.threads