Changed to use multiprocessing+threadding.

Needs refactor/cleanup, but works.