shutdown operations on exit, this is run by
        a finaly statement after the tkinter mainloop ends
        call root.quit to get here,
        Note you will still need to call sys.exit()

def shutdown(self):
        ''' shutdown operations on exit, this is run by
        a finaly statement after the tkinter mainloop ends
        call root.quit to get here,
        Note you will still need to call sys.exit()
        '''
        logging.info('Shutdown procedures being run!')
        for func in self.shutdown_cleanup.values():
            func()
        session_time = round((time.time() - self.start_time)/60, 0)
        logging.info('session time: {0} minutes'.format(session_time))
        logging.info('End..')