code: func New(exec utilexec.Interface, dbus utildbus.Interface, protocol Protocol) Interface {
  	vstring, err := getIptablesVersionString(exec)
  	if err != nil {
  		glog.Warningf("Error checking iptables version, assuming version at least %s: %v", MinCheckVersion, err)
  		vstring = MinCheckVersion
  	}
  	runner := &runner{
  		exec:     exec,
  		dbus:     dbus,
  		protocol: protocol,
  		hasCheck: getIptablesHasCheckCommand(vstring),
  		waitFlag: getIptablesWaitFlag(vstring),
  	}
  	runner.connectToFirewallD()
  	return runner
  }
docs: // New returns a new Interface which will exec iptables.