'Starts the work!
User interface coders: Please remember that you have to call
core.plugins.init_plugins() method before calling start.
:return: No value is returned.'

def start(self):

    try:
        self.verify_target_server_up()
        self.alert_if_target_is_301_all()
        self._setup_grep()
        self._setup_auth()
        self._setup_crawl_infrastructure()
        self._setup_audit()
        self._setup_bruteforce()
        self._setup_observers()
        self._setup_404_detection()
        self._seed_discovery()
        self._fuzzable_request_router()
    except Exception as e:
        om.out.debug(('strategy.start()    found    exception    "%s"' % e))
        exc_info = sys.exc_info()
        try:
            self.terminate()
            self._w3af_core.worker_pool.finish()
        except Exception as e:
            msg = 'strategy.start()    found    exception    while    terminating    workers    "%s"'
            om.out.debug((msg % e))
        raise exc_info[0], exc_info[1], exc_info[2]
    else:
        self.join_all_consumers()
        self._w3af_core.worker_pool.finish()
