Performance is still not great, but better
This is largely a move to simplify a lot of the readers Also further breaks out functions.