def METHOD_NAME(self, offset=0, **query):
    def _process_result(result):
        # Internally the client uses object_type, not type
        result['object_type'] = result['type']
        if result['object_type'] == 'vault':
            return Vault.construct_from(result)
        else:
            return Object.construct_from(result)
    # Call superclass method execute
    super(GlobalSearch, self).METHOD_NAME(offset, **query)
    # Cast logical objects from response to Object/Vault instances
    if not self._raw_results:
        self._response['results'] = [_process_result(i) for i in self._response['results']]