diff --git a/Diagrams/Class_Diagram.asta.lock b/Diagrams/Class_Diagram.asta.lock
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/dbfunc.py b/src/dbfunc.py
index b337a0bcc1dfa9abbfaea97a792a6bbdd54dec5e..ac61c2b4bb0dde40d7480f83f59de678f7920f9d 100644
--- a/src/dbfunc.py
+++ b/src/dbfunc.py
@@ -1,4 +1,4 @@
-import logging, json, mysql.connector
+import logging, json, mysql
 from mysql.connector import errorcode
 
 # Vars
diff --git a/src/managerUser.py b/src/managerUser.py
index 43e122f55ff0baf68931169e8df8aff8013783c2..f74edda220127eaa6dd473011f64f4d446113948 100644
--- a/src/managerUser.py
+++ b/src/managerUser.py
@@ -10,7 +10,7 @@ class ManagerUser(AdminUser):
         super().__init__()
         self.permissionLevel = 2
     
-    def expandBuisness(self):
+    def expand_buisness(self):
         # creates new cinemaObj and adds it to db.
         raise NotImplementedError()
 
diff --git a/src/staffUser.py b/src/staffUser.py
index a242233455ac571a810e6430cc9b8e5baa7eee61..94df517da6ea633f9eccb5b089dbb557a69c86ff 100644
--- a/src/staffUser.py
+++ b/src/staffUser.py
@@ -1,5 +1,5 @@
 import logging, json
-
+from .constants import DBNAME
 from .dbfunc import *
 from .cinemaObj import Cinema
 
@@ -14,32 +14,53 @@ class StaffUser(object):
         self.cinemas = [0]
         
     def __str__(self):
-        if self.permissionLevel == 1:
-            userType = "Admin"
-        elif self.permissionLevel == 2:
-            userType = "Manager"
-        else:
-            userType = "BookingStaff"
-        return f"{userType} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass})"
-    
-
-    def save(self) -> None:
-        """save self to db."""
-        raise NotImplementedError()
+        return f"{self.__class__.__name__} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass}, permissionLevel={self.permissionLevel})"
 
-    def login(self) -> None:
-        logging.debug(f"user {self.userID} logging in.")
+    def login(self, userID) -> None:
+        """get values for self from db"""
+        logging.debug("called login func")
+        jsonData = selectFromTblWhere("tblUsers", "", f"user_id={userID}", "*")
+        dictData = json.loads(jsonData)
+        logging.debug(f"loaded data: {dictData}")
+        
+        # update self data with new values.
         raise NotImplementedError()
+    
+    def _save_self_to_db(self) -> None:
+        """save self.__dict__ to db."""
+        logging.debug("called _save_self_to_db func")
+        try:
+            saveToTbl("tblUsers", DBNAME, self.__dict__)
+        except Exception as e:
+            logging.error(e.message, e.args)
 
     def logout(self) -> None:
-        logging.debug(f"user {self.userID} logging out.")
-        self.save()
+        """save to database then """
+        logging.debug("called logout func")
+        logging.info(f"user {self.userID} logging out.")
+        self._save_self_to_db()
+        self.close()
+    
+    def return_film_listings(self) -> list:
+        logging.debug("called returnFilmListings func")
+        listings = []
+        for i in self.cinemas:
+            cinema = Cinema(id=i)
+            listings.append(cinema.get_listings())
+        return listings
+            
+    def createBooking(self) -> None:
+        logging.debug("called createBooking func")
+        raise NotImplementedError()
+    
+    def manageBooking(self) -> None:
+        logging.debug("called manageBooking func")
+        raise NotImplementedError()
     
-    def cli_ViewFilmListings(self) -> None:
-        logging.debug("this is the viewFilmListing func")
-        cinema = Cinema(id=1)
-        for i in cinema.get_listings():
-            # will need formating
+    def cli_view_film_listings(self) -> None:
+        logging.debug("called cli_viewFilmListing func")
+        for i in self.returnFilmListings():
+            # will need formating, from json?
             print(f"listing:{i}")
 
         case = input("Options: 1-exit, 2-move to create booking, 3-logout\n: ")
@@ -48,25 +69,8 @@ class StaffUser(object):
         elif case == "3":
             self.logout()
     
-    def createBooking(self) -> None:
-        logging.debug("called createBooking func")
-        raise NotImplementedError()
-    
-    def manageBooking(self) -> None:
-        logging.debug("called manageBooking func")
-        raise NotImplementedError()
+
     
-    def updateFromDataBase(self, userID) -> None:
-        """
-        get values for self from db
-        args:
-            userID: id for user to load into object"""
-        jsonData = selectFromTblWhere("tblUsers", "", f"user_id={userID}", "*")
-        dictData = json.loads(jsonData)
-        logging.debug(f"loaded data: {dictData}")
-        
-        # update self data with new values.
-        raise NotImplementedError()