code: func NewRunner(config *config.Config, dry, once bool) (*Runner, error) {
  	log.Printf("[INFO] (runner) creating new runner (dry: %v, once: %v)", dry, once)
  
  	runner := &Runner{
  		config: config,
  		dry:    dry,
  		once:   once,
  	}
  
  	if err := runner.init(); err != nil {
  		return nil, err
  	}
  
  	return runner, nil
  }
docs: // NewRunner accepts a slice of TemplateConfigs and returns a pointer to the new
  // Runner and any error that occurred during creation.