use logging; add timethis decorator to measure function runtime
add threadpool to parallelize building word groups