<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def __get_conn(self, flag_force_new=False, filename=None):
 """Returns connection to database. Tries to return existing connection, unless flag_force_new Args: flag_force_new: filename: Returns: sqlite3.Connection object **Note** this is a private method because you can get a connection to any file, so it has to be used in the right moment """

        flag_open_new = flag_force_new or not self._conn_is_open()

        if flag_open_new:
            if filename is None:
                filename = self.filename
            # funny that __get_conn() calls _get_conn() but that's it
            conn = self._get_conn(filename)
            self._conn = conn
        else:
            conn = self._conn
        return conn