def set_timer_interval(self):
        #if self.root.attributes("-topmost", True):
        #    self.root.attributes("-topmost", False)
        
        if not hasattr(self, 'current_session_timings'):  # Make sure the properties exist
            self.current_session_timings = []
            self.is_session_mode = False

        dialog = CustomTimeDialog(self.root, self.current_session_timings, self.is_session_mode)
        if dialog.result is not None:
            self.is_session_mode = dialog.togsess_mode.get()  # Ensure you're accessing the toggled state from the dialog

            if self.is_session_mode:
                try:
                    self.current_session_timings = dialog.result
                    # Session mode is active, dialog.result contains the list of session strings
                    self.process_session(dialog.result)
                    # Set the interval to the first session's time
                    self.timer_interval = self.current_session_list[0][1] * 1000
                    self.session_image_count = self.current_session_list[0][0]
                except IndexError as e:
                    self.is_session_mode=False
                    
            else:
                # Session mode is inactive, dialog.result should be a numerical value 
                interval = dialog.result
                if interval < 1:  # Check if interval is less than 1 second
                    interval = 1
                self.timer_interval = interval * 1000  # Convert to milliseconds
                self.set_timer_interval = self.timer_interval
        else: 
            pass
        #self.root.lift()  # Bring the main window to the top
        self.root.focus_force()  # Give focus to the main window
        
        minutes = self.timer_interval // 60000
        seconds = (self.timer_interval % 60000) // 1000
        
        if self.timer_interval <=59000:
            self.timer_label.config(text=f"{seconds}")
        else :
            self.timer_label.config(text=f"{minutes:d}:{seconds:02d}")

    def process_session(self, session_list):
        self.current_session_list = []
        for session_str in session_list:
            try:
                num_pic, time_str = session_str.split(' pic for ')
                minutes, seconds = self.parse_time(time_str)
                self.current_session_list.append((int(num_pic), minutes * 60 + seconds))
            except ValueError as e:
                # Handle the error appropriately, e.g., by logging or messaging the user
                pass  # Or whatever error handling you choose

    def parse_time(self, time_str):
        splits = time_str.split('m')
        if len(splits) > 1:
            minutes = int(splits[0])
            seconds = int(splits[1].replace('s', ''))
        else:
            minutes = 0
            seconds = int(time_str.replace('s', ''))
        return minutes, seconds

    def pause_timer(self):
        if self.timer is not None:
            self.root.after_cancel(self.timer)
            self.timer = None
        if self.session_active:
            self.session_index = 0
            self.session_image_count = self.current_session_list[0][1]
            self.timer_interval = self.current_session_list[0][1] * 1000
            
    def start_timer(self):
        if self.session_completed:
            # If the session is completed and the timer is started again, reset the session
            self.session_completed = False
            self.session_index = 0
            self.session_image_count = self.current_session_list[0][0]
            self.timer_interval = self.current_session_list[0][1] * 1000
            #self.timer_label.config(text="Start again?")  # Update the label to indicate a new start
            #return

for some reason the minute part of the list is unread and returns  
line 355, in start_timer
    self.session_image_count = self.current_session_list[0][0]
                               ~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range