code: func (d *Database) Add(path string, n *Node) {
  	d.mtx.Lock()
  	defer d.mtx.Unlock()
  
  	if path == "" {
  		d.root = n
  		return
  	}
  
  	rabbitHole := strings.Split(path, "/")
  	current := d.root
  	for i := 0; i < len(rabbitHole)-1; i++ {
  		step := rabbitHole[i]
  		next, ok := current.Children[step]
  		if !ok {
  			next = &Node{
  				Parent:   current,
  				Key:      step,
  				Children: map[string]*Node{},
  			}
  			current.Children[step] = next
  		}
  		next.Value = nil // no long has a value since it now has a child
  		current, next = next, nil
  	}
  
  	lastPath := rabbitHole[len(rabbitHole)-1]
  	current.Children[lastPath] = n
  	n.Parent = current
  }
docs: // Add puts a Node into the database.