switch from thread-array to ThreadPool