def list_member_groups(self, member_id):

        ''' a method to retrieve a list of meetup groups member belongs to

        :param member_id: integer with meetup member id
        :return: dictionary with list of group details in [json]

        group_details = self.objects.group_profile.schema
        '''

    # https://www.meetup.com/meetup_api/docs/members/:member_id/#get

        title = '%s.list_member_groups' % self.__class__.__name__

    # validate inputs
        input_fields = {
            'member_id': member_id
        }
        for key, value in input_fields.items():
            if value:
                object_title = '%s(%s=%s)' % (title, key, str(value))
                self.fields.validate(value, '.%s' % key, object_title)

    # construct member id
        if not member_id:
            raise IndexError('%s requires member id argument.' % title)

    # compose request fields
        url = '%s/members/%s' % (self.endpoint, str(member_id))
        params = {
            'fields': 'memberships'
        }

    # send requests
        response_details = self._get_request(url, params=params)

    # construct method output dictionary
        member_groups = {
            'json': []
        }
        for key, value in response_details.items():
            if not key == 'json':
                member_groups[key] = value

    # parse response
        if response_details['json']:
            if 'memberships' in response_details['json'].keys():
                for group in response_details['json']['memberships']['member']:
                    member_groups['json'].append(self.objects.group_profile.ingest(**group))

        return member_groups