All working, still needs a bit more tuning testing and evaluation to
see if can be made fast enough.