The above 5 methods are well-factored, tiny little functions that do what you expect (with the one noted exception). Well done!