anchor.diff:      backends = mkOption {
         description = "List of backends statsd will use for data persistance";
         default = ["graphite"];
  +      example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"];
  +      type = types.listOf (types.either types.str types.package);
       };
   
       graphiteHost = mkOption {
         description = "Hostname or IP of Graphite server";
  -      default = config.services.graphite.web.host;
  -      type = types.str;
  +      default = null;
  +      type = types.nullOr types.str;
       };
   
       graphitePort = mkOption {
         description = "Port of Graphite server (i.e. carbon-cache).";
  -      default = 2003;
  -      type = types.uniq types.int;
  +      default = null;
  +      type = types.nullOr types.int;
       };
   
       extraConfig = mkOption {
  +      description = "Extra configuration options for statsd";
         default = "";
  -      description = "Extra configuration options for statsd";
  -      type = types.str;
  +      type = types.nullOr types.str;
       };
   
     };
  
positive.code: 
    configFile = pkgs.writeText "statsd.conf" ''
      {
        host: "${cfg.host}",
        port: "${toString cfg.port}",
        mgmt_address: "${cfg.mgmt_address}",
        mgmt_port: "${toString cfg.mgmt_port}",
        backends: [${concatMapStrings (el: ''"./backends/${el}",'') cfg.backends}],
        graphiteHost: "${cfg.graphiteHost}",
        graphitePort: "${toString cfg.graphitePort}",
        ${cfg.extraConfig}
      }
    '';
  
negative.code:     systemd.services.statsd = {
        description = "Statsd Server";
        wantedBy = [ "multi-user.target" ];
        environment = {
          NODE_PATH=concatMapStringsSep ":" (el: "${el}/lib/node_modules") (filter (el: (nixType el) != "string") cfg.backends);
        };
        serviceConfig = {
          ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}";
          User = "statsd";
  