def process_poi(self, poi):
        props = {}
        add_parts = []

        for child in poi:
            if child.tag in TAGS and child.tag in MAPPING:
                if child.tag in ('latitude', 'longitude'):
                    props[MAPPING[child.tag]] = float(child.text)
                else:
                    props[MAPPING[child.tag]] = child.text

            elif child.tag in TAGS and child.tag not in MAPPING:
                props[child.tag] = child.text

            elif child.tag in ('address1', 'address2', 'address3', ):
                add_parts.append(child.text if child.text else '')

        props.update({'addr_full': ', '.join(filter(None, add_parts))})

        return GeojsonPointItem(**props)