I think it looks worse than it is because there are so many overloads, to make the operations dead simple.  If you have a suggestion to make it simpler, let me know.