code: func CreateCommand(cfg Config) (Command, error) {
  	err := cfg.CheckAndSetDefaults()
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	cmd := command{
  		Config: cfg,
  	}
  
  	cmd.log = log.WithFields(log.Fields{
  		trace.Component: "SCP",
  		trace.ComponentFields: log.Fields{
  			"LocalAddr":      cfg.Flags.LocalAddr,
  			"RemoteAddr":     cfg.Flags.RemoteAddr,
  			"Target":         cfg.Flags.Target,
  			"User":           cfg.User,
  			"RunOnServer":    cfg.RunOnServer,
  			"RemoteLocation": cfg.RemoteLocation,
  		},
  	})
  
  	return &cmd, nil
  }
docs: // CreateCommand creates and returns a new Command