code: def walk(self, root):
          
          files = []
          folders = []
          
          for relpath in self.listdir(root):
              if self.isfile(root + '/' + relpath):
                  files.append(relpath)
              else:
                  folders.append(relpath)
          
          yield root, folders, files
          
          for folder in folders:
              folderpath = root + '/' + folder
              for sub_root, sub_folders, sub_files in self.walk(folderpath):
                  yield sub_root, sub_folders, sub_files
docs: Walks the path for a returning the folders and roots for the
          files found, similar to os.walk.
          
          :param      path | <str>