<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load(self, response):
 """The load method parses the raw JSON response from the server. Most models are not returned in the main response body, but in a key such as 'entity', defined by the 'data_key' attribute on the class. Also, related objects are often returned and can be used to pre-cache related model objects without having to contact the server again. This method handles all of those cases. Also, if a request has triggered a background operation, the request details are returned in a 'Requests' section. We need to store that request object so we can poll it until completion. """

        if 'href' in response:
            self._href = response.pop('href')
        if self.data_key and self.data_key in response:
            self._data.update(response.pop(self.data_key))
            #  preload related object collections, if received
            for rel in [x for x in self.relationships if x in response and response[x]]:
                rel_class = self.relationships[rel]
                collection = rel_class.collection_class(
                    self.client, rel_class, parent=self
                )
                self._relationship_cache[rel] = collection(response[rel])
        else:
            self._data.update(response)