Sorry it's taken so long to get to it. Overall this looks good, I had one question, and there seem to be a bunch of test failures that need to be looked into. Also it's missing a changelog. But once all those things are fixed I think we're happy to take this contribution.