use thread pool and add more logs