Concurrency

55% faster than the first concurrency attempt.

Still 3 times slower than the non-concurrent version.