code: func NewAccountsStorage(ctx *cli.Context) *AccountsStorage {
  	// TODO: move to account struct? Currently MUST pass email.
  	email := getEmail(ctx)
  
  	serverURL, err := url.Parse(ctx.GlobalString("server"))
  	if err != nil {
  		log.Fatal(err)
  	}
  
  	rootPath := filepath.Join(ctx.GlobalString("path"), baseAccountsRootFolderName)
  	serverPath := strings.NewReplacer(":", "_", "/", string(os.PathSeparator)).Replace(serverURL.Host)
  	accountsPath := filepath.Join(rootPath, serverPath)
  	rootUserPath := filepath.Join(accountsPath, email)
  
  	return &AccountsStorage{
  		userID:          email,
  		rootPath:        rootPath,
  		rootUserPath:    rootUserPath,
  		keysPath:        filepath.Join(rootUserPath, baseKeysFolderName),
  		accountFilePath: filepath.Join(rootUserPath, accountFileName),
  		ctx:             ctx,
  	}
  }
docs: // NewAccountsStorage Creates a new AccountsStorage.