':returns: item_list - list of Route53 zones.
:returns: exception_map - A dict where the keys are a tuple containing the
location of the exception and the value is the actual exception'

def slurp(self):

    self.prep_for_slurp()
    @iter_account_region(index=self.index, accounts=self.accounts, exception_record_region='universal')
    def slurp_items(**kwargs):
        app.logger.debug('Checking    {}/{}'.format(self.index, kwargs['account_name']))
        item_list = []
        zones = self.list_hosted_zones(**kwargs)
        if (not zones):
            return (item_list, kwargs['exception_map'])
        app.logger.debug('Slurped    {len_zones}    {plural}    from    {account}.'.format(len_zones=len(zones), plural=self.i_am_plural, account=kwargs['account_name']))
        for zone in zones:
            record_sets = self.list_resource_record_sets(Id=zone['Id'], **kwargs)
            if (not record_sets):
                continue
            app.logger.debug(('Slurped    %s    %s    within    %s    %s    (%s)    from    %s' % (len(record_sets), self.i_have_plural, self.i_am_singular, zone['Name'], zone['Id'], kwargs['account_name'])))
            for record in record_sets:
                item = self.process_item(name=record['Name'], record=record, zone=zone, **kwargs)
                item_list.append(item)
        return (item_list, kwargs['exception_map'])
    return slurp_items()
