anchor.diff:          Group = "graphite";
         };
         restartTriggers = [
  -        pkgs.pythonPackages.carbon cfg.carbon
  -        cfg.storageAggregation cfg.storageSchemas cfg.rewriteRules
  +        pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.storageAggregation
  +        cfg.carbon.storageSchemas cfg.carbon.rewriteRules
         ];
         preStart = ''
           mkdir -p ${dataDir}/whisper
         '';
       };
   
  -    systemd.services.carbonAggregator = mkIf cfg.enableCarbonAggregator {
  +    systemd.services.carbonAggregator = mkIf cfg.carbon.enableAggregator {
         description = "Carbon data aggregator";
         wantedBy = [ "multi-user.target" ];
         after = [ "network-interfaces.target" ];
  
positive.code:         User = "graphite";
          Group = "graphite";
        };
        restartTriggers = [ pkgs.pythonPackages.carbon cfg.carbon cfg.relayRules ];
      };
  
      systemd.services.graphiteWeb = mkIf cfg.enableGraphiteWeb {
        description = "Graphite web interface";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
        environment = {
          GRAPHITE_CONF_DIR = "/etc/graphite/";
          GRAPHITE_STORAGE_DIR = "${dataDir}";
        };
        serviceConfig = {
          ExecStart = "${pkgs.pythonPackages.graphite_web}/bin/run-graphite-devel-server.py ${pkgs.pythonPackages.graphite_web}";
          User = "graphite";
          Group = "graphite";
        };
  
negative.code:         User = "graphite";
          Group = "graphite";
        };
        restartTriggers = [
          pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
        ];
      };
  
      systemd.services.carbonRelay = mkIf cfg.carbon.enableRelay {
        description = "Carbon data relay";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
  