hmm its smells like we should do that int he `ThreadPool` class and make it a general threadpool no?