diff --git a/Diagrams/Class_Diagram.asta.lock b/Diagrams/Class_Diagram.asta.lock
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/cinemaObj.py b/src/cinemaObj.py
index 12de64b8722703327bf95967522e2e18bf034b8a..ac86e5285ee5784de023f18c016c5802c729a676 100644
--- a/src/cinemaObj.py
+++ b/src/cinemaObj.py
@@ -23,7 +23,7 @@ class Cinema(object):
     def create_screen(self):
         raise NotImplementedError()
         # obj_screen = Screen(capacity=0, sizeH=9,sizeW=16,resolutionH=1080,resolutionW=1920,isIMAX=False)
-        # obj_screen.save()
+        # cinema_screeens .append obj_screen
     
     def update_screen(self, screen:Screen, sizeHeight:float, sizeWidth:float, resolutionHeight:int, resolutionWidth:int, capacity:int) -> None:
         raise NotImplementedError()
@@ -45,6 +45,13 @@ class Cinema(object):
         # do we need this? need to test if we can use cinema.listings.remove()
         raise NotImplementedError()
 
+    def updateFromDataBase(self) -> None:
+        # call dbFunc
+        # gets data in form of json
+        # gets pricing data
+        # convert to dict?
+        # update self data with new values.
+        raise NotImplementedError()
 
 
 if __name__ == "__main__":
diff --git a/src/dbfunc.py b/src/dbfunc.py
index bb661660efec2f040b21035863ce7cb0907922ba..067b8ca0b9b1b6683a97c076f23bbb40c1c76ada 100644
--- a/src/dbfunc.py
+++ b/src/dbfunc.py
@@ -40,4 +40,30 @@ def getConnection(db=""):
                 logging.error(err)
         else:
             logging.error("Connected to server, without database.")
-            return conn
\ No newline at end of file
+            return conn
+        
+def selectFromTbl(table, dbname, *args):
+    logging.debug(f"running slect statement with values: tablename='{table}'', dbname='{dbname}'', {args}")
+    conn = getConnection(db=dbname)
+    if conn != None:
+        if conn.is_connected():
+            SELECT_STATEMENT = f"SELECT "
+            for arg in args:
+                SELECT_STATEMENT.append(f"{arg}, ")
+            SELECT_STATEMENT.removesuffix(", ")
+            SELECT_STATEMENT.append(f" from {table};")
+            
+            dbcursor = conn.cursor()
+            dbcursor.execute(f"USE {dbname}")
+            dbcursor.execute(SELECT_STATEMENT)
+            logging.info("SELECT statement executed successfully.")
+            dataOut = dbcursor.fetchall()
+            logging.debug(f"dataOut: {dataOut}")
+            dbcursor.close()
+            conn.close()
+        else:
+            logging.error("conn not connected")
+            raise ConnectionError()
+    else:
+        logging.error("conn returned NoneType")
+        raise ConnectionAbortedError()
diff --git a/src/staffUser.py b/src/staffUser.py
index e8b7c94319dae1780cbfe536b425c46be5786420..c770fe8a78b94a9a5df74ee76897d6ef93c8c391 100644
--- a/src/staffUser.py
+++ b/src/staffUser.py
@@ -22,15 +22,6 @@ class StaffUser(object):
             userType = "BookingStaff"
         return f"{userType} user object(userID={self.userID}, userName={self.userName}, userPass={self.userPass})"
     
-#    @property
-#    def options_list(self) -> dict:
-#        """_summary_
-#        functions in a dict, to be used as labels and callable function pairs
-#        Returns:
-#            dict: _description_
-#        """
-#        options:dict = {"View film Listings":self.viewFilmListing, "Create booking":self.createBooking, "Logout":self.logout}
-#        return options
 
     def save(self):
         """save self to db."""
@@ -63,6 +54,13 @@ class StaffUser(object):
     
     def manageBooking(self):
         raise NotImplementedError()
+    
+    def updateFromDataBase(self) -> None:
+        # call dbFunc
+        # gets dbData in form of json
+        # convert to dict?
+        # update self data with new values.
+        raise NotImplementedError()