fix: add concurrency