There is a bit of boilerplate to get dynamic dispatch working, but apart from that it's quite simple to use.