Why the need for the factory? I get that this defers the actual encoding operation until you pull out the value, but when will you ever create an instance of this and not use it?