Finally happy with it.
Can do a pull request back to master.