multiprocessing stuff, a lot of small improvements. has many bugs actually