add ThreadPool
finalize multi-threading and counter limitation