Threading model needs rework

Worked through the initial logic for threading however the original
load overwhelms the threads for calculation. There needs to be a wait
until free threading model to allow threads to distribute the work
rather than waiting on a long list of functions to execute.