diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 5c5afba..f44537c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,7 +9,6 @@
       
       
       
-      
       
     
     
@@ -34,8 +33,7 @@
     
   
   
-    
-    
+    
   
   {
   "associatedIndex": 3
@@ -48,28 +46,28 @@
     
     
   
-  {
+  "keyToString": {
+    "ASKED_ADD_EXTERNAL_FILES": "true",
+    "Python.INSTALL.executor": "Run",
+    "Python.cls_mth_fc.executor": "Run",
+    "Python.install.executor": "Run",
+    "Python.main.executor": "Run",
+    "Python.messagebox.executor": "Run",
+    "Python.start_wg.executor": "Run",
+    "Python.testtheme.executor": "Run",
+    "Python.wg_func.executor": "Run",
+    "Python.wg_main.executor": "Run",
+    "Python.wirepy.executor": "Run",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "RunOnceActivity.git.unshallow": "true",
+    "Shell Script.install.executor": "Run",
+    "Shell Script.run_as.executor": "Run",
+    "git-widget-placeholder": "21-04-2025-new-tooltip",
+    "last_opened_file_path": "/home/punix/Pyapps/wire-py",
+    "settings.editor.selected.configurable": "ml.llm.LLMConfigurable"
   }
-}]]>
+}
   
     
       
@@ -630,6 +628,11 @@
           1128
           
         
+        
+          file://$PROJECT_DIR$/ssl_decrypt.py
+          3
+          
+        
       
     
   
diff --git a/__pycache__/cls_mth_fc.cpython-312.pyc b/__pycache__/cls_mth_fc.cpython-312.pyc
index 0321542..4879fc8 100644
Binary files a/__pycache__/cls_mth_fc.cpython-312.pyc and b/__pycache__/cls_mth_fc.cpython-312.pyc differ
diff --git a/cls_mth_fc.py b/cls_mth_fc.py
index ec49e7b..1e51c2e 100755
--- a/cls_mth_fc.py
+++ b/cls_mth_fc.py
@@ -8,11 +8,12 @@ import signal
 import subprocess
 import sys
 import tkinter as tk
+from typing import Optional, Dict, Any, NoReturn, TextIO, Tuple, List
 import zipfile
 from datetime import datetime
 from pathlib import Path
-from subprocess import check_call
-from tkinter import ttk
+from subprocess import check_call, CompletedProcess
+from tkinter import ttk, Toplevel
 
 import requests
 
@@ -32,15 +33,15 @@ class Create:
     """
 
     @staticmethod
-    def dir_and_files():
+    def dir_and_files() -> None:
         """
         check and create folders and files if not present
         """
 
-        pth = Path.home() / ".config/wire_py"
+        pth: Path = Path.home() / ".config/wire_py"
         pth.mkdir(parents=True, exist_ok=True)
-        sett = Path.home() / ".config/wire_py/settings"
-        ks = Path.home() / ".config/wire_py/keys"
+        sett: Path = Path.home() / ".config/wire_py/settings"
+        ks: Path = Path.home() / ".config/wire_py/keys"
 
         if sett.exists():
             pass
@@ -56,14 +57,14 @@ class Create:
             ks.touch()
 
     @staticmethod
-    def files_for_autostart():
+    def files_for_autostart() -> None:
         """
-        check and create file for auto start if not present and enable the service
+        check and create a file for auto start if not present and enable the service
         """
 
-        pth2 = Path.home() / ".config/systemd/user"
+        pth2: Path = Path.home() / ".config/systemd/user"
         pth2.mkdir(parents=True, exist_ok=True)
-        wg_ser = Path.home() / ".config/systemd/user/wg_start.service"
+        wg_ser: Path = Path.home() / ".config/systemd/user/wg_start.service"
 
         if wg_ser.exists():
             pass
@@ -76,24 +77,24 @@ class Create:
             check_call(["systemctl", "--user", "enable", "wg_start.service"])
 
     @staticmethod
-    def make_dir():
-        """Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard"""
+    def make_dir() -> None:
+        """Folder Name "tlecdewg" = Tunnel Encrypt Decrypt Wireguard"""
 
-        dirname = Path("/tmp/tlecdcwg/")
-        if dirname.exists():
+        folder_path: Path = Path("/tmp/tlecdcwg/")
+        if folder_path.exists():
             pass
         else:
-            dirname.mkdir()
+            folder_path.mkdir()
 
     @staticmethod
-    def decrypt():
+    def decrypt() -> None:
         """
-        This start ssl_decrypt file
+        Starts SSL dencrypt
         """
-        process = subprocess.run(["pkexec", "/usr/local/bin/ssl_decrypt.py"], stdout=subprocess.PIPE, text=True,
-                                 check=True)
-        path = Path.home() / ".config/wire_py/"
-        file_in_path = list(path.rglob("*.dat"))
+        process: CompletedProcess[str] = subprocess.run(["pkexec", "/usr/local/bin/ssl_decrypt.py"],
+                                                        stdout=subprocess.PIPE, text=True, check=True)
+        path: Path = Path.home() / ".config/wire_py/"
+        file_in_path: list[Path] = list(path.rglob("*.dat"))
         if file_in_path:
             if process.returncode == 0:
                 print("File successfully decrypted...")
@@ -103,12 +104,12 @@ class Create:
             print(_("Ready for import"))
 
     @staticmethod
-    def encrypt():
+    def encrypt() -> None:
         """
-        this start ssl_encrypt file
+        Starts SSL encryption
         """
-        process = subprocess.run(["pkexec", "/usr/local/bin/ssl_encrypt.py"], stdout=subprocess.PIPE, text=True,
-                                 check=True)
+        process: CompletedProcess[str] = subprocess.run(["pkexec", "/usr/local/bin/ssl_encrypt.py"],
+                                                        stdout=subprocess.PIPE, text=True, check=True)
         print(process.stdout)
         if process.returncode == 0:
             print("All Files successfully encrypted...")
@@ -121,38 +122,37 @@ class LxTools(tk.Tk):
     Class LinuxTools methods that can also be used for other apps
     """
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, *args: Any, **kwargs: Any) -> None:
         super().__init__(*args, **kwargs)
 
     @staticmethod
-    def uos():
+    def uos() -> None:
         """
-
         uos = LOGIN USERNAME
 
-        This method displays the user name of the logged-in user,
+        This method displays the username of the logged-in user,
         even if you are rooted in a shell
         """
-        logname = f"{Path.home()}"[6:]
-        file = Path.home() / "/tmp/.loguser"
+        log_name: str = f"{Path.home()}"[6:]
+        file: Path = Path.home() / "/tmp/.log_user"
         with open(file, "w", encoding="utf-8") as f:
-            f.write(logname)
+            f.write(log_name)
 
     @staticmethod
-    def clean_files(dirname=None, file=None):
+    def clean_files(folder_path: Path = None, file: Path = None) -> None:
         """
         method that can be added after need to delete a folder and a file when quitting.
         Args:
-            dirname (_folder_, optional): _path to folder_. Defaults to None.
-            file (_file_, optional): _path to file_. Defaults to None.
+            :param file: default None
+            :param folder_path: default None
         """
-        if dirname is not None:
-            shutil.rmtree(dirname)
+        if folder_path is not None:
+            shutil.rmtree(folder_path)
         if file is not None:
             Path.unlink(file)
 
     @staticmethod
-    def if_tip(path):
+    def if_tip(path: Path) -> bool:
         """
         method that writes in file whether tooltip is displayed or not
         """
@@ -165,83 +165,93 @@ class LxTools(tk.Tk):
             return tip
 
     @staticmethod
-    def msg_window(img_w, img_i, w_title, w_txt, txt2=None, com=None):
+    def msg_window(img_w: str, img_i: str, w_title: str, w_txt: str, txt2: Optional[str] = None,
+                   com: Optional[str] = None) -> None:
         """
-        Method for different message windows for the user. with 4 arguments to be passed.
-        To create messages with your own images, icons, and titles.
-        As an alternative to Python Messagebox.
-        Paths to images must be specified: r'/usr/share/icons/lx-icons/64/info.png'
-        img_w = Image for Tk Window
-        img_i = Image for Icon
-        w_title = Windows Title
-        w_txt = Text for Tk Window
-        txt2 = Text for Button two
-        com = function for Button command
+        Creates message windows
+
+        :argument img_w = Image for Tk Window
+        :argument img_i = Image for Icon
+        :argument w_title = Windows Title
+        :argument w_txt = Text for Tk Window
+        :argument txt2 = Text for Button two
+        :argument com = function for Button command
         """
-        msg = tk.Toplevel()
+        msg: tk.Toplevel = tk.Toplevel()
         msg.resizable(width=False, height=False)
         msg.title(w_title)
         msg.configure(pady=15, padx=15)
         msg.img = tk.PhotoImage(file=img_w)
         msg.i_window = tk.Label(msg, image=msg.img)
 
-        label = tk.Label(msg, text=w_txt)
+        label: tk.Label = tk.Label(msg, text=w_txt)
 
         label.grid(column=1, row=0)
 
         if txt2 is not None and com is not None:
             label.config(font=("Ubuntu", 11), padx=15, justify="left")
             msg.i_window.grid(column=0, row=0, sticky="nw")
-            button2 = ttk.Button(msg, text=f"{txt2}", command=com, padding=4)
+            button2: ttk.Button = ttk.Button(msg, text=f"{txt2}", command=com, padding=4)
             button2.grid(column=0, row=1, sticky="e", columnspan=2)
-            button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
+            button: ttk.Button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
             button.grid(column=0, row=1, sticky="w", columnspan=2)
 
         else:
             label.config(font=("Ubuntu", 11), padx=15)
             msg.i_window.grid(column=0, row=0)
-            button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
+            button: ttk.Button = ttk.Button(msg, text="OK", command=msg.destroy, padding=4)
             button.grid(column=0, columnspan=2, row=1)
 
-        img_i = tk.PhotoImage(file=img_i)
+        img_i: tk.PhotoImage = tk.PhotoImage(file=img_i)
         msg.iconphoto(True, img_i)
         msg.columnconfigure(0, weight=1)
         msg.rowconfigure(0, weight=1)
         msg.winfo_toplevel()
 
     @staticmethod
-    def sigi(dirname=None, file=None):
+    def sigi(file_path: Optional[Path] = None, file: Optional[Path] = None) -> None:
         """
-        function for clean up after break
+        Function for cleanup after a program interruption
+
+        :param file: Optional - File to be deleted
+        :param file_path: Optional - Directory to be deleted
         """
 
-        def signal_handler(signum, frame):
+        def signal_handler(signum: int, frame: Any) -> NoReturn:
             """
-            Determine clear text names for signal numbers
+            Determines clear text names for signal numbers and handles signals
+
+            Args:
+                signum: The signal number
+                frame: The current stack frame
+
+            Returns:
+                NoReturn since the function either exits the program or continues execution
             """
-            signals_to_names_dict = dict(
-                (getattr(signal, n), n)
-                for n in dir(signal)
-                if n.startswith("SIG") and "_" not in n
-            )
-            signame = signals_to_names_dict.get(signum, f"Unnamed signal: {signum}")
+
+            signals_to_names_dict: Dict[int, str] = dict((getattr(signal, n), n) for n in dir(signal)
+                                                         if n.startswith("SIG") and "_" not in n)
+
+            signal_name: str = signals_to_names_dict.get(signum, f"Unnamed signal: {signum}")
 
             # End program for certain signals, report to others only reception
             if signum in (signal.SIGINT, signal.SIGTERM):
-                exit_code = 1
-                print(f"\nSignal {signame} {(signum)} received. => Aborting with exit code {exit_code}.")
-                LxTools.clean_files(dirname, file)
+                exit_code: int = 1
+                print(f"\nSignal {signal_name} {signum} received. => Aborting with exit code {exit_code}.")
+                LxTools.clean_files(file_path, file)
                 print("Breakdown by user...")
                 sys.exit(exit_code)
             else:
                 print(f"Signal {signum} received and ignored.")
-                LxTools.clean_files(dirname, file)
+                LxTools.clean_files(file_path, file)
                 print("Process unexpectedly ended...")
 
+        # Register signal handlers for various signals
         signal.signal(signal.SIGINT, signal_handler)
         signal.signal(signal.SIGTERM, signal_handler)
         signal.signal(signal.SIGHUP, signal_handler)
 
+
 class GiteaUpdate:
     """
     Calling download requests the download URL of the running script,
@@ -250,63 +260,76 @@ class GiteaUpdate:
     """
 
     @staticmethod
-    def api_down(update_api_url, version, file=None):
+    def api_down(update_api_url: str, version: str, file: Optional[Path] = None) -> str:
         """
-        Calling api_down requests the URL and the version of the running script.
-        Example: version = 'v. 1.1.1.1' GiteaUpdate.api_down(http://example.de, version)
+        Checks for updates via API
+        
+        Args:
+            update_api_url: Update API URL
+            version: Current version
+            file: Optional - Configuration file
+            
+        Returns:
+            New version or status message
         """
         try:
-            response = requests.get(update_api_url, timeout=10)
-            response_dict = response.json()
-            response_dict = response_dict[0]
+            response: requests.Response = requests.get(update_api_url, timeout=10)
+            response_dict: Any = response.json()
+            response_dict: Dict[str, Any] = response_dict[0]
             with open(file, "r", encoding="utf-8") as set_f:
                 set_f = set_f.read()
                 if "on\n" in set_f:
                     if version[3:] != response_dict["tag_name"]:
-                        req = response_dict["tag_name"]
+                        req: str = response_dict["tag_name"]
                     else:
-                        req = "No Updates"
+                        req: str = "No Updates"
                 else:
-                    req = "False"
+                    req: str = "False"
                 return req
         except requests.exceptions.RequestException:
-            req = "No Internet Connection!"
+            req: str = "No Internet Connection!"
             return req
 
     @staticmethod
-    def download(urld, down_ok_image, down_not_ok_image, res):
+    def download(urld: str, down_ok_image: str, down_not_ok_image: str, res: str) -> None:
         """
-        this is for download new Version of wirepy
+        Downloads new version of wirepy
+
+        Args:
+            urld: Download URL
+            down_ok_image: Path to success image
+            down_not_ok_image: Path to error image
+            res: Result filename
         """
         try:
-            to_down = f"wget -qP {Path.home()} {" "} {urld}"
-            result = subprocess.call(to_down, shell=True)
+            to_down: str = f"wget -qP {Path.home()} {" "} {urld}"
+            result: int = subprocess.call(to_down, shell=True)
             if result == 0:
                 shutil.chown(f"{Path.home()}/{res}.zip", 1000, 1000)
 
-                # img_w, img_i, w_title, w_txt hand over
-                iw = r"/usr/share/icons/lx-icons/64/info.png"
-                ii = down_ok_image
-                wt = _("Download Successful")
-                msg_t = _("Your zip file is in home directory")
+                # Message window variables
+                iw: str = r"/usr/share/icons/lx-icons/64/info.png"
+                ii: str = down_ok_image
+                wt: str = _("Download Successful")
+                msg_t: str = _("Your zip file is in home directory")
                 LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
-                # img_w, img_i, w_title, w_txt hand over
-                iw = r"/usr/share/icons/lx-icons/64/error.png"
-                ii = down_not_ok_image
-                wt = _("Download error")
-                msg_t = _("Download failed! Please try again")
+                # Error message window variables
+                iw: str = r"/usr/share/icons/lx-icons/64/error.png"
+                ii: str = down_not_ok_image
+                wt: str = _("Download error")
+                msg_t: str = _("Download failed! Please try again")
                 LxTools.msg_window(iw, ii, wt, msg_t)
 
         except subprocess.CalledProcessError:
 
-            # img_w, img_i, w_title, w_txt hand over
-            iw = r"/usr/share/icons/lx-icons/64/error.png"
-            ii = down_not_ok_image
-            wt = _("Download error")
-            msg_t = _("Download failed! No internet connection!")
+            # Exception message window variables
+            iw: str = r"/usr/share/icons/lx-icons/64/error.png"
+            ii: str = down_not_ok_image
+            wt: str = _("Download error")
+            msg_t: str = _("Download failed! No internet connection!")
             LxTools.msg_window(iw, ii, wt, msg_t)
 
 
@@ -316,15 +339,14 @@ class Tunnel:
     """
 
     @classmethod
-    def con_to_dict(cls, file):
+    def con_to_dict(cls, file: TextIO) -> Tuple[str, str, str, Optional[str]]:
         """
-        The config file is packed into a dictionary,
-        to display the values Address , DNS and Peer in the labels
+        Returns tuple of (address, dns, endpoint, pre_key)
         """
 
-        dictlist = []
+        dictlist: List[str] = []
         for lines in file.readlines():
-            line_plit = lines.split()
+            line_plit: List[str] = lines.split()
             dictlist = dictlist + line_plit
         dictlist.remove("[Interface]")
         dictlist.remove("[Peer]")
@@ -336,33 +358,33 @@ class Tunnel:
 
         # Here is the beginning (Loop) of convert List to Dictionary
         for _ in dictlist:
-            a = [dictlist[0], dictlist[1]]
-            b = [dictlist[2], dictlist[3]]
-            c = [dictlist[4], dictlist[5]]
-            d = [dictlist[6], dictlist[7]]
-            e = [dictlist[8], dictlist[9]]
-            f = [dictlist[10], dictlist[11]]
-            g = [dictlist[12], dictlist[13]]
-            h = [dictlist[14], dictlist[15]]
-            new_list = [a, b, c, d, e, f, g, h]
-            final_dict = {}
+            a: List[str] = [dictlist[0], dictlist[1]]
+            b: List[str] = [dictlist[2], dictlist[3]]
+            c: List[str] = [dictlist[4], dictlist[5]]
+            d: List[str] = [dictlist[6], dictlist[7]]
+            e: List[str] = [dictlist[8], dictlist[9]]
+            f: List[str] = [dictlist[10], dictlist[11]]
+            g: List[str] = [dictlist[12], dictlist[13]]
+            h: List[str] = [dictlist[14], dictlist[15]]
+            new_list: List[List[str]] = [a, b, c, d, e, f, g, h]
+            final_dict: Dict[str, str] = {}
             for elements in new_list:
                 final_dict[elements[0]] = elements[1]
 
             # end... result a Dictionary
 
-        address = final_dict["Address"]
-        dns = final_dict["DNS"]
+        address: str = final_dict["Address"]
+        dns: str = final_dict["DNS"]
         if "," in dns:
             dns = dns[:-1]
-        endpoint = final_dict["Endpoint"]
-        pre_key = final_dict.get("PresharedKey")
+        endpoint: str = final_dict["Endpoint"]
+        pre_key: Optional[str] = final_dict.get("PresharedKey")
         if pre_key is None:
-            pre_key = final_dict.get("PreSharedKey")
+            pre_key: Optional[str] = final_dict.get("PreSharedKey")
         return address, dns, endpoint, pre_key
 
     @staticmethod
-    def active():
+    def active() -> str:
         """
         Shows the Active Tunnel
         """
@@ -375,59 +397,59 @@ class Tunnel:
         return active
 
     @staticmethod
-    def list():
+    def list() -> List[str]:
         """
-        Shows all existing Wireguard tunnels a login user
+        Returns a list of Wireguard tunnel names
         """
-        dirname = Path("/tmp/tlecdcwg/")
-        wg_s = os.listdir(dirname)
+        folder_path: Path = Path("/tmp/tlecdcwg/")
+        wg_s: List[str] = os.listdir(folder_path)
 
         return wg_s
 
     @staticmethod
-    def export():
+    def export() -> None:
         """
         This will export the tunnels.
-        A zipfile with current date and time is created
-        in the user's home directory with correct right
+        A zipfile with the current date and time is created
+        in the user's home directory with the correct right
         """
-        now_time = datetime.now()
-        now_datetime = now_time.strftime("wg-exp-%m-%d-%Y-%H:%M")
-        tl = Tunnel.list()
+        now_time: datetime = datetime.now()
+        now_datetime: str = now_time.strftime("wg-exp-%m-%d-%Y-%H:%M")
+        tl: List[str] = Tunnel.list()
 
         try:
             if len(tl) != 0:
-                wg_tar = f"{Path.home()}/{now_datetime}"
+                wg_tar: str = f"{Path.home()}/{now_datetime}"
                 shutil.copytree("/tmp/tlecdcwg/", "/tmp/wire_py", dirs_exist_ok=True)
-                source = Path("/tmp/wire_py")
+                source: Path = Path("/tmp/wire_py")
                 shutil.make_archive(wg_tar, "zip", source)
                 shutil.rmtree(source)
                 with zipfile.ZipFile(f"{wg_tar}.zip", "r") as zf:
                     if len(zf.namelist()) != 0:
 
-                        # img_w, img_i, w_title, w_txt hand over
-                        iw = r"/usr/share/icons/lx-icons/64/info.png"
-                        ii = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
-                        wt = _("Export Successful")
-                        msg_t = _("Your zip file is in home directory")
+                        # Message window variables
+                        iw: str = r"/usr/share/icons/lx-icons/64/info.png"
+                        ii: str = r"/usr/share/icons/lx-icons/48/wg_vpn.png"
+                        wt: str = _("Export Successful")
+                        msg_t: str = _("Your zip file is in home directory")
                         LxTools.msg_window(iw, ii, wt, msg_t)
 
                     else:
 
-                        # img_w, img_i, w_title, w_txt hand over
-                        iw = r"/usr/share/icons/lx-icons/64/error.png"
-                        ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
-                        wt = _("Export error")
-                        msg_t = _("Export failed! Please try again")
+                        # Error message window variables
+                        iw: str = r"/usr/share/icons/lx-icons/64/error.png"
+                        ii: str = r"/usr/share/icons/lx-icons/48/wg_msg.png"
+                        wt: str = _("Export error")
+                        msg_t: str = _("Export failed! Please try again")
                         LxTools.msg_window(iw, ii, wt, msg_t)
 
             else:
 
-                # img_w, img_i, w_title, w_txt hand over
-                iw = r"/usr/share/icons/lx-icons/64/info.png"
-                ii = r"/usr/share/icons/lx-icons/48/wg_msg.png"
-                wt = _("Select tunnel")
-                msg_t = _("Please first import tunnel")
+                # Message window variables
+                iw: str = r"/usr/share/icons/lx-icons/64/info.png"
+                ii: str = r"/usr/share/icons/lx-icons/48/wg_msg.png"
+                wt: str = _("Select tunnel")
+                msg_t: str = _("Please first import tunnel")
                 LxTools.msg_window(iw, ii, wt, msg_t)
 
         except TypeError:
@@ -438,43 +460,51 @@ class Tooltip:
     """
     class for Tooltip
 
-    imoprt Tooltip
+    import Tooltip
 
     example: Tooltip(label, "Show tooltip on label")
-    examble: Tooltip(button, "Show tooltip on button")
-    info: label and button is parrent.
+    example: Tooltip(button, "Show tooltip on button")
+    info: label and button are parent.
     """
 
-    def __init__(self, widget, text, tips=None):
-        self.widget = widget
-        self.text = text
-        self.tooltip_window = None
+    def __init__(self, widget: Any, text: str, tips: Optional[bool] = None) -> None:
+        """
+        Tooltip Class
+        """
+
+        self.widget: Any = widget
+        self.text: str = text
+        self.tooltip_window: Optional[Toplevel] = None
         if tips:
             self.widget.bind("", self.show_tooltip)
             self.widget.bind("", self.hide_tooltip)
 
-    def show_tooltip(self, event=None):
+    def show_tooltip(self, event: Optional[Any] = None) -> None:
         """
-        shows the tooltip
+        Shows the tooltip
         """
         if self.tooltip_window or not self.text:
             return
 
-        x, y, _, _ = self.widget.bbox("insert")
+        x: int
+        y: int
+        cx: int
+        cy: int
+        x, y, cx, cy = self.widget.bbox("insert")
         x += self.widget.winfo_rootx() + 65
         y += self.widget.winfo_rooty() + 40
         self.tooltip_window = tw = tk.Toplevel(self.widget)
         tw.wm_overrideredirect(True)
         tw.wm_geometry(f"+{x}+{y}")
 
-        label = tk.Label(tw, text=self.text, background="lightgreen", foreground="black", relief="solid", borderwidth=1,
-                         padx=5, pady=5)
+        label: tk.Label = tk.Label(tw, text=self.text, background="lightgreen", foreground="black", relief="solid",
+                                   borderwidth=1, padx=5, pady=5)
         label.grid()
 
-    def hide_tooltip(self, event=None):
+    def hide_tooltip(self, event: Optional[Any] = None) -> None:
         """
-        hide the tooltip
+        Hides the tooltip
         """
         if self.tooltip_window:
             self.tooltip_window.destroy()
-            self.tooltip_window = None
+            self.tooltip_window = None
\ No newline at end of file
diff --git a/ssl_decrypt.py b/ssl_decrypt.py
index c2352c9..38e6935 100755
--- a/ssl_decrypt.py
+++ b/ssl_decrypt.py
@@ -1,35 +1,35 @@
 #!/usr/bin/python3
-""" This Script decrypt Wireguardfiles for Wirepy users """
+""" This Script decrypt Wireguard files for Wirepy users """
 
 import os
 import shutil
 from pathlib import Path
 from subprocess import check_call
 
-uname = Path("/tmp/.loguser")
+uname: Path = Path("/tmp/.log_user")
 
 with open(uname, "r", encoding="utf-8") as f:
-    logname = f.readline()
+    log_name = f.readline()
 
-# Dirname "tlecdewg" = Tunnel Encrypt Decrypt Wireguard
-dirname = Path("/tmp/tlecdcwg/")
-keyfile = Path(f"/home/{logname}/.config/wire_py/pbwgk.pem")
-PKEYFILE = "/usr/local/etc/ssl/pwgk.pem"
+# Folder Name "tlecdewg" = Tunnel Encrypt Decrypt Wireguard
+folder_path: Path = Path("/tmp/tlecdcwg/")
+keyfile: Path = Path(f"/home/{log_name}/.config/wire_py/pbwgk.pem")
+PKEYFILE: Path = "/usr/local/etc/ssl/pwgk.pem"
 
 if not keyfile.is_file():
 
     check_call(["openssl", "rsa", "-in", PKEYFILE, "-out", keyfile, "-outform", "PEM", "-pubout"])
     shutil.chown(keyfile, 1000, 1000)
 
-dirname2 = f"/home/{logname}/.config/wire_py/"
-detl = os.listdir(dirname2)
-os.chdir(dirname2)
+folder_path2 = f"/home/{log_name}/.config/wire_py/"
+detl: list[str] = os.listdir(folder_path2)
+os.chdir(folder_path2)
 detl.remove("keys")
 detl.remove("settings")
-if os.path.exists(f"{dirname2}pbwgk.pem"):
+if os.path.exists(f"{folder_path2}pbwgk.pem"):
     detl.remove("pbwgk.pem")
     for detunnels in detl:
         tlname2 = f"{detunnels[:-4]}.conf"
-        extpath = f"{dirname}/{tlname2}"
+        extpath = f"{folder_path}/{tlname2}"
         check_call(["openssl", "pkeyutl", "-decrypt", "-inkey", PKEYFILE, "-in", detunnels, "-out", extpath])
         shutil.chown(extpath, 1000, 1000)
diff --git a/ssl_encrypt.py b/ssl_encrypt.py
index 3433a26..d5a73c9 100755
--- a/ssl_encrypt.py
+++ b/ssl_encrypt.py
@@ -6,13 +6,13 @@ import shutil
 from pathlib import Path
 from subprocess import check_call
 
-uname = Path("/tmp/.loguser")
+uname: Path = Path("/tmp/.log_user")
 
 with open(uname, "r", encoding="utf-8") as f:
-    logname = f.readline()
+    log_name: str = f.readline()
 
-keyfile = Path(f"/home/{logname}/.config/wire_py/pbwgk.pem")
-dirname = Path("/tmp/tlecdcwg/")
+keyfile: Path = Path(f"/home/{log_name}/.config/wire_py/pbwgk.pem")
+folder_path: Path = Path("/tmp/tlecdcwg/")
 PKEYFILE = "/usr/local/etc/ssl/pwgk.pem"
 
 if not keyfile.is_file():
@@ -20,28 +20,28 @@ if not keyfile.is_file():
     check_call(["openssl", "rsa", "-in", PKEYFILE, "-out", keyfile, "-outform", "PEM", "-pubout"])
     shutil.chown(keyfile, 1000, 1000)
 
-    if dirname.exists():
-        tl = os.listdir(f"{dirname}")
-        CPTH = f"{keyfile}"
-        CRYPTFILES = CPTH[:-9]
+    if folder_path.exists():
+        tl = os.listdir(f"{folder_path}")
+        CPTH: str = f"{keyfile}"
+        CRYPTFILES: str = CPTH[:-9]
 
         if keyfile.exists() and len(tl) != 0:
             for tunnels in tl:
-                sourcetl = f"{dirname}/{tunnels}"
-                tlname = f"{CRYPTFILES}{tunnels[:-5]}.dat"
+                sourcetl: str = f"{folder_path}/{tunnels}"
+                tlname: str = f"{CRYPTFILES}{tunnels[:-5]}.dat"
                 check_call(["openssl", "pkeyutl", "-encrypt", "-inkey", keyfile, "-pubin", "-in", sourcetl, "-out",
                             tlname,])
 
 else:
 
-    if dirname.exists():
-        tl = os.listdir(f"{dirname}")
-        CPTH = f"{keyfile}"
-        CRYPTFILES = CPTH[:-9]
+    if folder_path.exists():
+        tl: list[str] = os.listdir(f"{folder_path}")
+        CPTH: str = f"{keyfile}"
+        CRYPTFILES: str = CPTH[:-9]
 
         if keyfile.exists() and len(tl) != 0:
             for tunnels in tl:
-                sourcetl = f"{dirname}/{tunnels}"
-                tlname = f"{CRYPTFILES}{tunnels[:-5]}.dat"
-                check_call(
-                    ["openssl", "pkeyutl", "-encrypt", "-inkey", keyfile, "-pubin", "-in", sourcetl, "-out", tlname])
+                sourcetl: str = f"{folder_path}/{tunnels}"
+                tlname: str = f"{CRYPTFILES}{tunnels[:-5]}.dat"
+                check_call(["openssl", "pkeyutl", "-encrypt", "-inkey", keyfile, "-pubin", "-in", sourcetl, "-out",
+                            tlname])
diff --git a/wirepy.py b/wirepy.py
index 4fcf804..25c9755 100755
--- a/wirepy.py
+++ b/wirepy.py
@@ -21,14 +21,14 @@ Create.dir_and_files()
 Create.make_dir()
 Create.decrypt()
 
-tcl_path = Path("/usr/share/TK-Themes")
-set_file = Path(Path.home() / ".config/wire_py/settings")
+tcl_path: Path = Path("/usr/share/TK-Themes")
+set_file: Path = Path(Path.home() / ".config/wire_py/settings")
 tips = LxTools.if_tip(set_file)
-dirname = Path("/tmp/tlecdcwg/")
-userfile = Path("/tmp/.loguser")
+folder_path: Path = Path("/tmp/tlecdcwg/")
+userfile = Path("/tmp/.log_user")
 
 # 1 = 1. Year, 09 = Month of the Year, 2924 = Day and Year of the Year
-VERSION = "v. 2.04.1725"
+VERSION: str = "v. 2.04.1725"
 
 res = GiteaUpdate.api_down("https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases", VERSION, set_file)
 
@@ -40,7 +40,7 @@ gettext.bindtextdomain(APP, LOCALE_DIR)
 gettext.textdomain(APP)
 _ = gettext.gettext
 
-LxTools.sigi(dirname, userfile)
+LxTools.sigi(folder_path, userfile)
 
 
 class Wirepy(tk.Tk):
@@ -917,5 +917,5 @@ if __name__ == "__main__":
     window.tk.call("set", "::tk::dialog::file::showHiddenVar", "0")
     window.mainloop()
 
-LxTools.clean_files(dirname, userfile)
+LxTools.clean_files(folder_path, userfile)
 sys.exit(0)