anchor.diff:  
     ###### implementation
   
  -  config = mkIf cfg.enable {
  -
  -    users.extraUsers.teamspeak =
  -      { name = "teamspeak";
  +  config = mkMerge [
  +    (mkIf cfg.enable {
  +      users.users.teamspeak = {
           description = "Teamspeak3 voice communication server daemon";
           group = group;
           uid = config.ids.uids.teamspeak;
  +        home = cfg.dataDir;
  +        createHome = true;
         };
   
  -    users.extraGroups.teamspeak =
  -      { name = "teamspeak";
  +      users.groups.teamspeak = {
           gid = config.ids.gids.teamspeak;
         };
   
  -    systemd.services.teamspeak3-server = { 
  -      description = "Teamspeak3 voice communication server daemon";
  -      after = [ "network.target" ];
  -      wantedBy = [ "multi-user.target" ];
  +      systemd.services.teamspeak3-server = {
  +        description = "Teamspeak3 voice communication server daemon";
  +        after = [ "network.target" ];
  +        wantedBy = [ "multi-user.target" ];
   
  -      preStart = ''
  -        mkdir -p ${cfg.dataDir}
  -        mkdir -p ${cfg.logPath}
  -        chown ${user}:${group} ${cfg.dataDir}
  -        chown ${user}:${group} ${cfg.logPath}
  -      '';
  +        preStart = ''
  +          mkdir -p ${cfg.logPath}
  +          chown ${user}:${group} ${cfg.logPath}
  +        '';
   
  -      serviceConfig =
  -        { ExecStart = ''
  +        serviceConfig = {
  +          ExecStart = ''
               ${ts3}/bin/ts3server \
                 dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \
                 voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \
  
positive.code:           WorkingDirectory = cfg.dataDir;
            User = user;
            Group = group;
            PermissionsStartOnly = true; # preStart needs to run with root permissions
          };
        };
  
    };
  
  }
  
negative.code: in
  
  {
  
    ###### interface
  
    options = {
  
      services.teamspeak3 = {
        enable = mkOption {
          type = types.bool;
          default = false;
  