we only want to get the meta information (our normalized IP) once,
        so we are going to do lazy instantiation to improve performance

def get_meta(self):
        """we only want to get the meta information (our normalized IP) once,
        so we are going to do lazy instantiation to improve performance

        """
        # get the normalized IP if we don't already have it
        if self._meta is None:
            external_ip = get_external_ip()
            if external_ip:
                self._meta = get_meta(self.config, external_ip)
            else:
                raise Exception("Unable to get public IP")
            if 'custom_meta' in self.config:
                self._meta['custom_meta'] = self.config['custom_meta']

        return self._meta