About to seriously muck with the algorithm again ... need to make it more obviously parallel