This class could probably be an OpenStruct to reduce it to one line instead, but leaving it as a class allows others to open it up and override these methods without having to resort to const_set, so this is probably better.