this also serializes to fewer values when possible