def __init__(self, debug=False):
        self._log = logger.getLogger('DLD')
        self._log.debug(
            'Initializing data dwonloader. Pandas version={0}, ibpy version:{1}'
            .format(pandas.__version__, ib.version))

        self.tws = ibConnection()
        self._dataHandler = DataHandler(self.tws)

        if debug:
            self.tws.registerAll(self._debugHandler)
            self.tws.unregister(self._debugHandler, message.HistoricalData)

        self._log.debug('Connecting to tws')
        self.tws.connect()

        self._timeKeeper = TimeKeeper()  # keep track of past requests
        self._reqId = 1  # current request id