Hopefully I should be winding down a bit on master, but I think occasional merging is totally necessary to prevent this branch from diverging permanently from master. When I merge, I'll try to port new parts based on the changes I've seen you make. This'll be much easier when we actually get some tests running, though.