Multi-processing unit tested

Introduced multiprocesses along with threads. Spent a lot of time
getting the number ranges correct. Stable-ish version