code: func Store(helper Helper, reader io.Reader) error {
  	scanner := bufio.NewScanner(reader)
  
  	buffer := new(bytes.Buffer)
  	for scanner.Scan() {
  		buffer.Write(scanner.Bytes())
  	}
  
  	if err := scanner.Err(); err != nil && err != io.EOF {
  		return err
  	}
  
  	var creds Credentials
  	if err := json.NewDecoder(buffer).Decode(&creds); err != nil {
  		return err
  	}
  
  	if ok, err := creds.isValid(); !ok {
  		return err
  	}
  
  	return helper.Add(&creds)
  }
docs: // Store uses a helper and an input reader to save credentials.
  // The reader must contain the JSON serialization of a Credentials struct.