anchor.diff:      };
       authorizedPasswords = map (p: { password = p; }) cfg.authorizedPasswords;
       interfaces = {
  -      ETHInterface = if (cfg.ETHInterface.bind != "") then [ cfg.ETHInterface ] else [ ];
  -      UDPInterface = if (cfg.UDPInterface.bind != "") then [ cfg.UDPInterface ] else [ ];
  +      ETHInterface = if (cfg.ETHInterface.bind != "") then [ (parseModules cfg.ETHInterface) ] else [ ];
  +      UDPInterface = if (cfg.UDPInterface.bind != "") then [ (parseModules cfg.UDPInterface) ] else [ ];
       };
   
       privateKey = "@CJDNS_PRIVATE_KEY@";
  
positive.code:       })
      else "";
  
    # would be nice to  merge 'cfg' with a //,
    # but the json nesting is wacky.
    cjdrouteConf = builtins.toJSON ( {
  
negative.code: 
        ETHInterface = {
          bind = mkOption {
            default = "";
            example = "eth0";
            description =
              ''
                Bind to this device for native ethernet operation.
                <literal>all</literal> is a pseudo-name which will try to connect to all devices.
              '';
          };
  
          beacon = mkOption {
            type = types.int;
  