def finished(self):
        ''' A method called from within run. If a task is dependant on a this
            supervisor, then this supervisor will query all of its tasks to
            determine if the supervisor is finished executing. A Supervisor
            is finished if and only if all of the Supervisor's tasks are
            finsihed.
        '''
        for t in self.tasks:
            if(not t.finished()):
                return False
        return True