def __init__(self, targets=None, priority=None, source=None, batch=False,
                 **kwargs):
        """
        Initialize D7 Networks Object
        """
        super(NotifyD7Networks, self).__init__(**kwargs)

        # The Priority of the message
        if priority not in D7NETWORK_SMS_PRIORITIES:
            self.priority = self.template_args['priority']['default']

        else:
            self.priority = priority

        # Prepare Batch Mode Flag
        self.batch = batch

        # Setup our source address (if defined)
        self.source = None \
            if not isinstance(source, six.string_types) else source.strip()

        # Parse our targets
        self.targets = list()

        for target in parse_list(targets):
            # Validate targets and drop bad ones:
            result = IS_PHONE_NO.match(target)
            if result:
                # Further check our phone # for it's digit count
                # if it's less than 10, then we can assume it's
                # a poorly specified phone no and spit a warning
                result = ''.join(re.findall(r'\d+', result.group('phone')))
                if len(result) < 11 or len(result) > 14:
                    self.logger.warning(
                        'Dropped invalid phone # '
                        '({}) specified.'.format(target),
                    )
                    continue

                # store valid phone number
                self.targets.append(result)
                continue

            self.logger.warning(
                'Dropped invalid phone # ({}) specified.'.format(target))

        if len(self.targets) == 0:
            msg = 'There are no valid targets identified to notify.'
            self.logger.warning(msg)
            raise TypeError(msg)

        return