use aggregate for word count in order to take advantage of implicit parallelism
use map semigroup for wordcount aggregate seq/combine ops
using aggregate instead of foldLeft in order to make use of parallelism
avoiding more foldLefts and simplifying