Another refactor, this time for speed
Two things:
Signficant Speedup at least testing on my machine
Regression bug fix.