docs: def _parse_sections(self):
          """ parse sections and TOC """
  
          def _list_to_dict(_dict, path, sec):
              tmp = _dict
              for elm in path[:-1]:
                  tmp = tmp[elm]
              tmp[sec] = OrderedDict()
  
          self._sections = list()
          section_regexp = r"\n==* .* ==*\n"  # '== {STUFF_NOT_\n} =='
          found_obj = re.findall(section_regexp, self.content)
  
          res = OrderedDict()
          path = list()
          last_depth = 0
          for obj in found_obj:
              depth = obj.count("=") / 2  # this gets us to the single side...
              depth -= 2  # now, we can calculate depth
  
              sec = obj.lstrip("\n= ").rstrip(" =\n")
              if depth == 0:
                  last_depth = 0
                  path = [sec]
                  res[sec] = OrderedDict()
              elif depth > last_depth:
                  last_depth = depth
                  path.append(sec)
                  _list_to_dict(res, path, sec)
              elif depth < last_depth:
                  # path.pop()
                  while last_depth > depth:
                      path.pop()
                      last_depth -= 1
                  path.pop()
                  path.append(sec)
                  _list_to_dict(res, path, sec)
                  last_depth = depth
              else:
                  path.pop()
                  path.append(sec)
                  _list_to_dict(res, path, sec)
                  last_depth = depth
              self._sections.append(sec)
  
          self._table_of_contents = res