docs: def add_cell(self, keypath, cell):
          """ Adds a new cell to the end of `keypath` of type `cell`"""
          keypath = keypath[:] # copy
          inner = self  # the most inner dict where cell is added
          cellname = keypath  # the name of the cell
          assert keypath not in self, "Already exists: %s " % (str(keypath))
          if isinstance(keypath, list):
              while len(keypath) > 1:
                  cellname = keypath.pop(0)
                  if cellname not in inner:
                      inner.__dict__['p'][cellname] = DictCell()
                  inner = inner[cellname] # move in one
              cellname = keypath[0]
          # now we can add 'cellname'->(Cell) to inner (DictCell)
          inner.__dict__['p'][cellname] = cell
          return inner[cellname]