<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _call_and_serialize(cls, method, data, refresh=False):
 """Call the remote method with data, and optionally refresh. Args: method (callable):
 The method on the Authenticated Five9 object that should be called. data (dict):
 A data dictionary that will be passed as the first and only position argument to ``method``. refresh (bool, optional):
 Set to ``True`` to get the record data from Five9 before returning the record. Returns: BaseModel: The newly created record. If ``refresh`` is ``True``, this will be fetched from Five9. Otherwise, it's the data record that was sent to the server. """

        method(data)
        if refresh:
            return cls.read(method.__self__, data[cls.__uid_field__])
        else:
            return cls.deserialize(cls._get_non_empty_dict(data))