code: func New(db *bolt.DB, rootBucket string) (*Store, error) {
  	if db.IsReadOnly() {
  		return nil, ErrDBReadOnly
  	}
  	bucket := []byte(rootBucket)
  
  	err := db.Update(func(tx *bolt.Tx) error {
  		// create root
  		root, err := tx.CreateBucketIfNotExists(bucket)
  		if err != nil {
  			return err
  		}
  		// create the buckets inside the root
  		for _, b := range [][]byte{
  			tasksPath, orgsPath, usersPath, taskMetaPath,
  			orgByTaskID, userByTaskID,
  			nameByTaskID, runIDs,
  		} {
  			_, err := root.CreateBucketIfNotExists(b)
  			if err != nil {
  				return err
  			}
  		}
  		return nil
  	})
  	if err != nil {
  		return nil, err
  	}
  	return &Store{db: db, bucket: bucket, idGen: snowflake.NewDefaultIDGenerator()}, nil
  }
docs: // New gives us a new Store based on "github.com/coreos/bbolt"