'Called if plugin is enabled, passed the options namespace'

def initialize(self, options):

    self.options = options
    self.protocol_instances = []
    from core.utils import iptables, shutdown, set_ip_forwarding
    debug = False
    if options.arp:
        if (not options.gateway):
            shutdown('[Spoof]    --arp    argument    requires    --gateway')
        from core.poisoners.ARP import ARPpoisoner
        arp = ARPpoisoner(options)
        arp.debug = debug
        self.tree_info.append('ARP    spoofing    enabled')
        self.protocol_instances.append(arp)
    elif options.dhcp:
        from core.poisoners.DHCP import DHCPpoisoner
        if options.targets:
            shutdown('[Spoof]    --targets    argument    invalid    when    DCHP    spoofing')
        dhcp = DHCPpoisoner(options)
        dhcp.debug = debug
        self.tree_info.append('DHCP    spoofing    enabled')
        self.protocol_instances.append(dhcp)
    elif options.icmp:
        from core.poisoners.ICMP import ICMPpoisoner
        if (not options.gateway):
            shutdown('[Spoof]    --icmp    argument    requires    --gateway')
        if (not options.targets):
            shutdown('[Spoof]    --icmp    argument    requires    --targets')
        icmp = ICMPpoisoner(options)
        icmp.debug = debug
        self.tree_info.append('ICMP    spoofing    enabled')
        self.protocol_instances.append(icmp)
    if options.dns:
        self.tree_info.append('DNS    spoofing    enabled')
        if ((iptables().dns is False) and (options.filter is None)):
            iptables().DNS(self.config['MITMf']['DNS']['port'])
    if ((not options.arp) and (not options.icmp) and (not options.dhcp) and (not options.dns)):
        shutdown('[Spoof]    Spoof    plugin    requires    --arp,    --icmp,    --dhcp    or    --dns')
    set_ip_forwarding(1)
    if ((iptables().http is False) and (options.filter is None)):
        iptables().HTTP(options.listen_port)
    for protocol in self.protocol_instances:
        protocol.start()
