tried to implement custom thread pool