now serializes to raw on demand in set()