def findById(self, id):
        db = self.learnXdB.openDataBase()
        c = db.cursor()

        t = (id,)
        c.execute("Select * From Languages Where id = ?", t)

        language = None
        for row in c:
            language = Language(
                row[1], row[2], posOptions=row[3], id=row[0], total=row[4], learnt=row[5], known=row[6], mature=row[7]
            )
            if language.posOptions:
                language.posOptions = pickle.loads(str(language.posOptions))

        db.commit()
        c.close()

        return language
    def list(self):

        db = self.learnXdB.openDataBase()

        c = db.cursor()
        c.execute("select * from Languages")

        languages = []
        for row in c:
            language = Language(
                row[1], row[2], posOptions=row[3], id=row[0], total=row[4], learnt=row[5], known=row[6], mature=row[7]
            )
            if language.posOptions:
                language.posOptions = pickle.loads(str(language.posOptions))
            languages.append(language)

        c.close()

        return languages