diff --git a/src/app.py b/src/app.py
index f1eab6077bb649dc33fde24d7f959b45061b66e0..f8564335b8f08c2acdd3edfa68c95ad69f1f06d9 100644
--- a/src/app.py
+++ b/src/app.py
@@ -35,7 +35,9 @@ def search(wiktlang, wordlang, word):
 
             return jsonify({"error": "Parsing page resulted in error: " + str(e)}), 500
         finally:
-            wiktextractor.page_handler.wxr.wtp.db_conn.close()
+            wiktextractor.wxr.wtp.db_conn.close()
+            if wiktextractor.wxr.thesaurus_db_conn:
+                wiktextractor.wxr.thesaurus_db_conn.close()
 
     else:
         return (
diff --git a/src/wiktextract_wrapper.py b/src/wiktextract_wrapper.py
index f748e68baa9125d2e65d891c3f01d024b14d9ef6..0f072ec1d0a51548829adba9ccdd30f1915fddd0 100644
--- a/src/wiktextract_wrapper.py
+++ b/src/wiktextract_wrapper.py
@@ -1,8 +1,7 @@
-from wiktextract.wiktionary import page_handler
-from wikitextprocessor import Page
+from wiktextract.page import parse_page
 
 from wiktextract_context import get_wiktextract_context
-
+    
 db_path = "./sqlite.db"
 
 DEFAULT_PAGE_VALUES = {
@@ -16,33 +15,28 @@ class Wiktextract:
         self.wiktlang = wiktlang
         self.wordlang = wordlang
 
-        self.page_handler = page_handler
-        self.page_handler.wxr = get_wiktextract_context(wiktlang, wordlang)
+        # self.page_handler = page_handler
+        # self.page_handler.wxr : WiktextractContext = 
+        self.wxr = get_wiktextract_context(wiktlang, wordlang)
 
     def parse_page(self, title: str, wikicode: str):
         # add page to the database (making it accessible to LUA templates)
-        self.page_handler.wxr.wtp.add_page(
+        self.wxr.wtp.add_page(
             title=title,
             namespace_id=DEFAULT_PAGE_VALUES["namespace_id"],
             body=wikicode,
             model=DEFAULT_PAGE_VALUES["model"],
         )
 
-        # create a page object (for parsing)
-        page = Page(title, 0, None, True, wikicode, "wikitext")
+        self.wxr.wtp.start_page(title)
 
-        # parse the page
-        success, ret, err = self.page_handler(page)
-        result, parsing_errors = ret
+        result = parse_page(self.wxr, title, wikicode)
 
         # remove the page from the database
-        self.page_handler.wxr.wtp.db_conn.execute(
+        self.wxr.wtp.db_conn.execute(
             "DELETE FROM pages WHERE title = ? AND model = ?",
             (title, DEFAULT_PAGE_VALUES["model"]),
         )
-        self.page_handler.wxr.wtp.db_conn.commit()
+        self.wxr.wtp.db_conn.commit()
 
-        if success:
-            return result
-        else:
-            raise Exception(err)
+        return result