use fragment for each tool for concurrency