code: func (n *node) Init(data interface{}) error {
  	v := reflect.ValueOf(data)
  	cfg, err := extract(&v)
  	if err != nil {
  		return err
  	}
  
  	return n.readWriteTx(func(tx *bolt.Tx) error {
  		return n.init(tx, cfg)
  	})
  }
docs: // Init creates the indexes and buckets for a given structure