There are couple more things I like to add to this (I made a pull request so Elizabeth could see it), but I'm really busy at the moment, so it may be a couple of weeks before I get a round to it.