various improvements for perf

I also worked on some minor changes to the "split" module since that is more general purpose. This edges it out in raw speed perf slightly. Would be interested to see a benchmark you had to show split having some issues versus this.