def METHOD_NAME(self):
    """Open ThreadedTerminal connection & start thread pulling data from it."""
    ret = super(ThreadedTerminal, self).METHOD_NAME()
    if not self._terminal:
        self.moler_connection.METHOD_NAME()
        self._terminal = PtyProcessUnicode.spawn(self._cmd, dimensions=self.dimensions)
        self._terminal.delayafterclose = self._terminal_delayafterclose
        # need to not replace not unicode data instead of raise exception
        self._terminal.decoder = codecs.getincrementaldecoder('utf-8')(errors='replace')
        done = Event()
        self.pulling_thread = TillDoneThread(target=self.pull_data,
                                             done_event=done,
                                             kwargs={'pulling_done': done})
        self.pulling_thread.start()
        retry = 0
        is_operable = False
        while (retry < 10) and (not is_operable):
            is_operable = self._shell_operable.wait(timeout=1)
            if not is_operable:
                self.logger.warning(
                    "Terminal open but not fully operable yet.\nREAD_BUFFER: '{}'".format(
                        self.read_buffer.encode("UTF-8", "replace")))
                self._terminal.write('\n')
                retry += 1
    return ret