diff --git a/krebs/1systems/puyak/config.nix b/krebs/1systems/puyak/config.nix
index d4a4941ca..31cc024af 100644
--- a/krebs/1systems/puyak/config.nix
+++ b/krebs/1systems/puyak/config.nix
@@ -11,6 +11,9 @@
     <stockholm/krebs/2configs/stats/puyak-client.nix>
     <stockholm/krebs/2configs/binary-cache/nixos.nix>
     <stockholm/krebs/2configs/binary-cache/prism.nix>
+    <stockholm/krebs/2configs/go.nix>
+    <stockholm/krebs/2configs/ircd.nix>
+    <stockholm/krebs/2configs/news.nix>
   ];
 
   krebs.build.host = config.krebs.hosts.puyak;
diff --git a/lass/2configs/go.nix b/krebs/2configs/go.nix
similarity index 100%
rename from lass/2configs/go.nix
rename to krebs/2configs/go.nix
diff --git a/lass/2configs/ircd.nix b/krebs/2configs/ircd.nix
similarity index 94%
rename from lass/2configs/ircd.nix
rename to krebs/2configs/ircd.nix
index ee4c0216c..116337733 100644
--- a/lass/2configs/ircd.nix
+++ b/krebs/2configs/ircd.nix
@@ -1,8 +1,8 @@
 { config, pkgs, ... }:
 
 {
-  krebs.iptables.tables.filter.INPUT.rules = [
-    { predicate = "-i retiolum -p tcp --dport 6667"; target = "ACCEPT"; }
+  networking.firewall.allowedTCPPorts = [
+    6667 6669
   ];
 
   services.charybdis = {
diff --git a/krebs/2configs/news.nix b/krebs/2configs/news.nix
new file mode 100644
index 000000000..5ff4ce3f2
--- /dev/null
+++ b/krebs/2configs/news.nix
@@ -0,0 +1,175 @@
+{ config, pkgs, ... }:
+
+let
+in {
+  environment.systemPackages = [
+    pkgs.newsbot-js
+  ];
+  krebs.newsbot-js = {
+    enable = true;
+    ircServer = "localhost";
+    urlShortenerHost = "go";
+    urlShortenerPort = "80";
+    feeds = pkgs.writeText "feeds" ''
+      aje|http://www.aljazeera.com/Services/Rss/?PostingId=2007731105943979989|#news
+      allafrica|http://allafrica.com/tools/headlines/rdf/latest/headlines.rdf|#news
+      antirez|http://antirez.com/rss|#news
+      arbor|http://feeds2.feedburner.com/asert/|#news
+      archlinux|http://www.archlinux.org/feeds/news/|#news
+      ars|http://feeds.arstechnica.com/arstechnica/index?format=xml|#news
+      augustl|http://augustl.com/atom.xml|#news
+      bbc|http://feeds.bbci.co.uk/news/rss.xml|#news
+      bdt_aktuelle_themen|http://www.bundestag.de/blueprint/servlet/service/de/14154/asFeed/index.rss|#news
+      bdt_drucksachen|http://www.bundestag.de/dip21rss/bundestag_drucksachen.rss|#news
+      bdt_plenarproto|http://www.bundestag.de/rss_feeds/plenarprotokolle.rss|#news
+      bdt_pressemitteilungen|http://www.bundestag.de/blueprint/servlet/service/de/273112/asFeed/index.rss|#news
+      bitcoinpakistan|https://bitcoinspakistan.com/feed/|#news
+      cancer|http://feeds.feedburner.com/ncinewsreleases?format=xml|#news
+      carta|http://feeds2.feedburner.com/carta-standard-rss|#news
+      catholic_news|http://feeds.feedburner.com/catholicnewsagency/dailynews|#news
+      cbc_busi|http://rss.cbc.ca/lineup/business.xml|#news
+      cbc_offbeat|http://www.cbc.ca/cmlink/rss-offbeat|#news
+      cbc_pol|http://rss.cbc.ca/lineup/politics.xml|#news
+      cbc_tech|http://rss.cbc.ca/lineup/technology.xml|#news
+      cbc_top|http://rss.cbc.ca/lineup/topstories.xml|#news
+      ccc|http://www.ccc.de/rss/updates.rdf|#news
+      chan_biz|http://boards.4chan.org/biz/index.rss|#news
+      chan_g|http://boards.4chan.org/g/index.rss|#news
+      chan_int|http://boards.4chan.org/int/index.rss|#news
+      chan_sci|http://boards.4chan.org/sci/index.rss|#news
+      chan_x|http://boards.4chan.org/x/index.rss|#news
+      c|http://www.tempolimit-lichtgeschwindigkeit.de/news.xml|#news
+      cryptogon|http://www.cryptogon.com/?feed=rss2|#news
+      csm|http://rss.csmonitor.com/feeds/csm|#news
+      csm_world|http://rss.csmonitor.com/feeds/world|#news
+      danisch|http://www.danisch.de/blog/feed/|#news
+      dod|http://www.defense.gov/news/afps2.xml|#news
+      dwn|http://deutsche-wirtschafts-nachrichten.de/feed/customfeed/|#news
+      ecat|http://ecat.com/feed|#news
+      eia_press|http://www.eia.gov/rss/press_rss.xml|#news
+      eia_today|http://www.eia.gov/rss/todayinenergy.xml|#news
+      embargowatch|https://embargowatch.wordpress.com/feed/|#news
+      ethereum-comments|http://blog.ethereum.org/comments/feed|#news
+      ethereum|http://blog.ethereum.org/feed|#news
+      europa_ric|http://ec.europa.eu/research/infocentre/rss/infocentre-rss.xml|#news
+      eu_survei|http://www.eurosurveillance.org/public/RSSFeed/RSS.aspx|#news
+      exploitdb|http://www.exploit-db.com/rss.xml|#news
+      fars|http://www.farsnews.com/rss.php|#news #test
+      faz_feui|http://www.faz.net/rss/aktuell/feuilleton/|#news
+      faz_politik|http://www.faz.net/rss/aktuell/politik/|#news
+      faz_wirtschaft|http://www.faz.net/rss/aktuell/wirtschaft/|#news
+      fbi|https://www.fbi.gov/news/rss.xml|#news
+      fedreserve|http://www.federalreserve.gov/feeds/press_all.xml|#news
+      fefe|http://blog.fefe.de/rss.xml|#news
+      forbes|http://www.forbes.com/forbes/feed2/|#news
+      forbes_realtime|http://www.forbes.com/real-time/feed2/|#news
+      fox|http://feeds.foxnews.com/foxnews/latest|#news
+      geheimorganisation|http://geheimorganisation.org/feed/|#news
+      GerForPol|http://www.german-foreign-policy.com/de/news/rss-2.0|#news
+      gmanet|http://www.gmanetwork.com/news/rss/news|#news
+      golem|http://rss.golem.de/rss.php|#news
+      google|http://news.google.com/?output=rss|#news
+      greenpeace|http://feeds.feedburner.com/GreenpeaceNews|#news
+      guardian_uk|http://feeds.theguardian.com/theguardian/uk-news/rss|#news
+      gulli|http://ticker.gulli.com/rss/|#news
+      hackernews|https://news.ycombinator.com/rss|#news
+      handelsblatt|http://www.handelsblatt.com/contentexport/feed/schlagzeilen|#news
+      heise|https://www.heise.de/newsticker/heise-atom.xml|#news
+      hindu_business|http://www.thehindubusinessline.com/?service=rss|#news
+      hindu|http://www.thehindu.com/?service=rss|#news
+      ign|http://feeds.ign.com/ign/all|#news
+      independent|http://www.independent.com/rss/headlines/|#news
+      indymedia|https://de.indymedia.org/rss.xml|#news
+      info_libera|http://www.informationliberation.com/rss.xml|#news
+      klagen-gegen-rundfuckbeitrag|http://klagen-gegen-rundfunkbeitrag.blogspot.com/feeds/posts/default|#news
+      korea_herald|http://www.koreaherald.com/rss_xml.php|#news
+      linuxinsider|http://www.linuxinsider.com/perl/syndication/rssfull.pl|#news
+      lisp|http://planet.lisp.org/rss20.xml|#news
+      liveleak|http://www.liveleak.com/rss|#news
+      lolmythesis|http://lolmythesis.com/rss|#news
+      LtU|http://lambda-the-ultimate.org/rss.xml|#news
+      lukepalmer|http://lukepalmer.wordpress.com/feed/|#news
+      mit|http://web.mit.edu/newsoffice/rss-feeds.feed?type=rss|#news
+      mongrel2_master|https://github.com/zedshaw/mongrel2/commits/master.atom|#news
+      nds|http://www.nachdenkseiten.de/?feed=atom|#news
+      netzpolitik|https://netzpolitik.org/feed/|#news
+      newsbtc|http://newsbtc.com/feed/|#news
+      nnewsg|http://www.net-news-global.net/rss/rssfeed.xml|#news
+      npr_busi|http://www.npr.org/rss/rss.php?id=1006|#news
+      npr_headlines|http://www.npr.org/rss/rss.php?id=1001|#news
+      npr_pol|http://www.npr.org/rss/rss.php?id=1012|#news
+      npr_world|http://www.npr.org/rss/rss.php?id=1004|#news
+      nsa|https://www.nsa.gov/rss.xml|#news #bullerei
+      nytimes|http://rss.nytimes.com/services/xml/rss/nyt/World.xml|#news
+      painload|https://github.com/krebscode/painload/commits/master.atom|#news
+      phys|http://phys.org/rss-feed/|#news
+      piraten|https://www.piratenpartei.de/feed/|#news
+      polizei_berlin|http://www.berlin.de/polizei/presse-fahndung/_rss_presse.xml|#news
+      presse_polizei|http://www.presseportal.de/rss/polizei.rss2|#news
+      presseportal|http://www.presseportal.de/rss/presseportal.rss2|#news
+      prisonplanet|http://prisonplanet.com/feed.rss|#news
+      rawstory|http://www.rawstory.com/rs/feed/|#news
+      reddit_4chan|http://www.reddit.com/r/4chan/new/.rss|#news
+      reddit_anticonsum|http://www.reddit.com/r/Anticonsumption/new/.rss|#news
+      reddit_btc|http://www.reddit.com/r/Bitcoin/new/.rss|#news
+      reddit_consp|http://reddit.com/r/conspiracy/.rss|#news
+      reddit_haskell|http://www.reddit.com/r/haskell/.rss|#news
+      reddit_nix|http://www.reddit.com/r/nixos/.rss|#news
+      reddit_prog|http://www.reddit.com/r/programming/new/.rss|#news
+      reddit_sci|http://www.reddit.com/r/science/.rss|#news
+      reddit_tech|http://www.reddit.com/r/technology/.rss|#news
+      reddit_tpp|http://www.reddit.com/r/twitchplayspokemon/.rss|#news
+      reddit_world|http://www.reddit.com/r/worldnews/.rss|#news
+      r-ethereum|http://www.reddit.com/r/ethereum/.rss|#news
+      reuters|http://feeds.reuters.com/Reuters/worldNews|#news
+      reuters-odd|http://feeds.reuters.com/reuters/oddlyEnoughNews?format=xml|#news
+      rt|http://rt.com/rss/news/|#news
+      schallurauch|http://feeds.feedburner.com/SchallUndRauch|#news
+      sciencemag|http://news.sciencemag.org/rss/current.xml|#news
+      scmp|http://www.scmp.com/rss/91/feed|#news
+      sec-db|http://feeds.security-database.com/SecurityDatabaseToolsWatch|#news
+      shackspace|http://blog.shackspace.de/?feed=rss2|#news
+      shz_news|http://www.shz.de/nachrichten/newsticker/rss|#news
+      sky_busi|http://feeds.skynews.com/feeds/rss/business.xml|#news
+      sky_pol|http://feeds.skynews.com/feeds/rss/politics.xml|#news
+      sky_strange|http://feeds.skynews.com/feeds/rss/strange.xml|#news
+      sky_tech|http://feeds.skynews.com/feeds/rss/technology.xml|#news
+      sky_world|http://feeds.skynews.com/feeds/rss/world.xml|#news
+      slashdot|http://rss.slashdot.org/Slashdot/slashdot|#news
+      slate|http://feeds.slate.com/slate|#news
+      spiegel_eil|http://www.spiegel.de/schlagzeilen/eilmeldungen/index.rss|#news
+      spiegelfechter|http://feeds.feedburner.com/DerSpiegelfechter?format=xml|#news
+      spiegel_top|http://www.spiegel.de/schlagzeilen/tops/index.rss|#news
+      standardmedia_ke|http://www.standardmedia.co.ke/rss/headlines.php|#news
+      stern|http://www.stern.de/feed/standard/all/|#news
+      stz|http://www.stuttgarter-zeitung.de/rss/topthemen.rss.feed|#news
+      sz_politik|http://rss.sueddeutsche.de/rss/Politik|#news
+      sz_wirtschaft|http://rss.sueddeutsche.de/rss/Wirtschaft|#news
+      sz_wissen|http://rss.sueddeutsche.de/rss/Wissen|#news
+      tagesschau|http://www.tagesschau.de/newsticker.rdf|#news
+      taz|http://taz.de/Themen-des-Tages/!p15;rss/|#news
+      telegraph|http://www.telegraph.co.uk/rss.xml|#news
+      telepolis|http://www.heise.de/tp/rss/news-atom.xml|#news
+      the_insider|http://www.theinsider.org/rss/news/headlines-xml.asp|#news
+      tigsource|http://www.tigsource.com/feed/|#news
+      tinc|http://tinc-vpn.org/news/index.rss|#news
+      topix_b|http://www.topix.com/rss/wire/de/berlin|#news
+      torr_bits|http://feeds.feedburner.com/TorrentfreakBits|#news
+      torrentfreak|http://feeds.feedburner.com/Torrentfreak|#news
+      torr_news|http://feed.torrentfreak.com/Torrentfreak/|#news
+      travel_warnings|http://feeds.travel.state.gov/ca/travelwarnings-alerts|#news
+      un_afr|http://www.un.org/apps/news/rss/rss_africa.asp|#news
+      un_am|http://www.un.org/apps/news/rss/rss_americas.asp|#news
+      un_eu|http://www.un.org/apps/news/rss/rss_europe.asp|#news
+      un_me|http://www.un.org/apps/news/rss/rss_mideast.asp|#news
+      un_pac|http://www.un.org/apps/news/rss/rss_asiapac.asp|#news
+      un_top|http://www.un.org/apps/news/rss/rss_top.asp|#news
+      us_math_society|http://www.ams.org/cgi-bin/content/news_items.cgi?rss=1|#news
+      vimperator|https://sites.google.com/a/vimperator.org/www/blog/posts.xml|#news
+      weechat|http://dev.weechat.org/feed/atom|#news
+      wp_world|http://feeds.washingtonpost.com/rss/rss_blogpost|#news
+      xkcd|https://xkcd.com/rss.xml|#news
+      zdnet|http://www.zdnet.com/news/rss.xml|#news
+    '';
+  };
+}
diff --git a/krebs/3modules/krebs/default.nix b/krebs/3modules/krebs/default.nix
index 881329a47..2fe3e5115 100644
--- a/krebs/3modules/krebs/default.nix
+++ b/krebs/3modules/krebs/default.nix
@@ -71,6 +71,7 @@ in {
           ip6.addr = "42:0:0:0:0:0:77:3";
           aliases = [
             "hotdog.r"
+            "build.r"
             "build.hotdog.r"
             "cgit.hotdog.r"
           ];
@@ -100,6 +101,7 @@ in {
             "puyak.r"
             "build.puyak.r"
             "cgit.puyak.r"
+            "go.r"
           ];
           tinc.pubkey = ''
             -----BEGIN RSA PUBLIC KEY-----
diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix
index 9b1e6ba20..257268af2 100644
--- a/krebs/3modules/lass/default.nix
+++ b/krebs/3modules/lass/default.nix
@@ -56,7 +56,6 @@ with import <stockholm/lib>;
           aliases = [
             "echelon.r"
             "cgit.echelon.r"
-            "go.r"
           ];
           tinc.pubkey = ''
             -----BEGIN RSA PUBLIC KEY-----
diff --git a/krebs/5pkgs/simple/Reaktor/plugins.nix b/krebs/5pkgs/simple/Reaktor/plugins.nix
index e85e41cfe..c611d7471 100644
--- a/krebs/5pkgs/simple/Reaktor/plugins.nix
+++ b/krebs/5pkgs/simple/Reaktor/plugins.nix
@@ -128,4 +128,24 @@ rec {
     '';
   });
 
+  wiki-todo-add = buildSimpleReaktorPlugin "wiki-todo-add" {
+    pattern = "^wiki-todo: (?P<args>.*)$$";
+    script = pkgs.writeDash "wiki-todo-add" ''
+      echo "$*" >> wiki-todo
+      echo "added todo. check on http://lassul.us/wiki-todo"
+    '';
+  };
+  wiki-todo-done = buildSimpleReaktorPlugin "wiki-todo-done" {
+    pattern = "^wiki-done: (?P<args>.*)$$";
+    script = pkgs.writeDash "wiki-todo-done" ''
+      ${pkgs.gnugrep}/bin/grep -Fvxe "$*" wiki-todo > wiki-todo.tmp
+      ${pkgs.coreutils}/bin/mv wiki-todo.tmp wiki-todo
+      echo "thank you for resolving todo: $*"
+    '';
+  };
+  wiki-todo-show = buildSimpleReaktorPlugin "wiki-todo" {
+    script = pkgs.writeDash "wiki-todo-add" ''
+      ${pkgs.coreutils}/bin/cat wiki-todo
+    '';
+  };
 }
diff --git a/krebs/source.nix b/krebs/source.nix
index 400826351..085f3c0d3 100644
--- a/krebs/source.nix
+++ b/krebs/source.nix
@@ -14,6 +14,6 @@ in
     stockholm.file = toString <stockholm>;
     nixpkgs.git = {
       url = https://github.com/NixOS/nixpkgs;
-      ref = "51a83266d164195698f04468d90d2c6238ed3491"; # nixos-17.03 @ 2017-07-30
+      ref = "56da88a298a6f549701a10bb12072804a1ebfbd5"; # nixos-17.03 @ 2017-09-03
     };
   }
diff --git a/lass/1systems/daedalus/config.nix b/lass/1systems/daedalus/config.nix
index 36daea1d5..e1bce5da8 100644
--- a/lass/1systems/daedalus/config.nix
+++ b/lass/1systems/daedalus/config.nix
@@ -33,10 +33,12 @@ with import <stockholm/lib>;
         firefox
         hexchat
         networkmanagerapplet
+        libreoffice
       ];
       services.xserver.enable = true;
       services.xserver.displayManager.lightdm.enable = true;
       services.xserver.desktopManager.plasma5.enable = true;
+      services.xserver.layout = "de";
     }
     {
       krebs.per-user.bitcoin.packages = [
@@ -55,6 +57,15 @@ with import <stockholm/lib>;
         bubsy ALL=(bitcoin) NOPASSWD: ALL
       '';
     }
+    {
+      #remote control
+      environment.systemPackages = with pkgs; [
+        x11vnc
+      ];
+      krebs.iptables.tables.filter.INPUT.rules = [
+        { predicate = "-p tcp -i retiolum --dport 5900"; target = "ACCEPT"; }
+      ];
+    }
   ];
 
   time.timeZone = "Europe/Berlin";
diff --git a/lass/1systems/echelon/config.nix b/lass/1systems/echelon/config.nix
index 77958267d..6f96883bf 100644
--- a/lass/1systems/echelon/config.nix
+++ b/lass/1systems/echelon/config.nix
@@ -9,12 +9,8 @@ in {
     <stockholm/lass/2configs/retiolum.nix>
     <stockholm/lass/2configs/os-templates/CAC-CentOS-7-64bit.nix>
     <stockholm/lass/2configs/exim-retiolum.nix>
-    <stockholm/lass/2configs/realwallpaper.nix>
     <stockholm/lass/2configs/privoxy-retiolum.nix>
     <stockholm/lass/2configs/git.nix>
-    <stockholm/lass/2configs/go.nix>
-    <stockholm/lass/2configs/ircd.nix>
-    <stockholm/lass/2configs/newsbot-js.nix>
     {
       networking.interfaces.enp2s1.ip4 = [
         {
diff --git a/lass/1systems/mors/config.nix b/lass/1systems/mors/config.nix
index 58f55ce68..4d2f8b0f8 100644
--- a/lass/1systems/mors/config.nix
+++ b/lass/1systems/mors/config.nix
@@ -24,21 +24,17 @@ with import <stockholm/lib>;
     <stockholm/lass/2configs/fetchWallpaper.nix>
     <stockholm/lass/2configs/mail.nix>
     <stockholm/lass/2configs/repo-sync.nix>
-    <stockholm/lass/2configs/ircd.nix>
+    <stockholm/krebs/2configs/ircd.nix>
     <stockholm/lass/2configs/logf.nix>
     <stockholm/lass/2configs/syncthing.nix>
     <stockholm/lass/2configs/otp-ssh.nix>
+    <stockholm/lass/2configs/c-base.nix>
     {
       #risk of rain port
       krebs.iptables.tables.filter.INPUT.rules = [
         { predicate = "-p tcp --dport 11100"; target = "ACCEPT"; }
       ];
     }
-    {
-      services.elasticsearch = {
-        enable = true;
-      };
-    }
     {
       lass.umts = {
         enable = true;
diff --git a/lass/1systems/prism/config.nix b/lass/1systems/prism/config.nix
index 744bae551..b3f547452 100644
--- a/lass/1systems/prism/config.nix
+++ b/lass/1systems/prism/config.nix
@@ -39,9 +39,10 @@ in {
     <stockholm/lass/2configs/monitoring/monit-alarms.nix>
     <stockholm/lass/2configs/paste.nix>
     <stockholm/lass/2configs/syncthing.nix>
-    <stockholm/lass/2configs/coders-irc.nix>
+    <stockholm/lass/2configs/reaktor-coders.nix>
     <stockholm/lass/2configs/ciko.nix>
     <stockholm/lass/2configs/container-networking.nix>
+    <stockholm/lass/2configs/reaktor-krebs.nix>
     {
       lass.pyload.enable = true;
     }
@@ -244,10 +245,6 @@ in {
         OnUnitInactiveSec = "2min";
         RandomizedDelaySec = "2min";
       };
-      krebs.repo-sync.repos.nixpkgs.timerConfig = {
-        OnBootSec = "90min";
-        OnUnitInactiveSec = "24h";
-      };
     }
     {
       lass.usershadow = {
diff --git a/lass/2configs/exim-smarthost.nix b/lass/2configs/exim-smarthost.nix
index 611e1b9da..a70d58828 100644
--- a/lass/2configs/exim-smarthost.nix
+++ b/lass/2configs/exim-smarthost.nix
@@ -41,6 +41,7 @@ with import <stockholm/lib>;
       { from = "steam@lassul.us"; to = lass.mail; }
       { from = "securityfocus@lassul.us"; to = lass.mail; }
       { from = "radio@lassul.us"; to = lass.mail; }
+      { from = "btce@lassul.us"; to = lass.mail; }
     ];
     system-aliases = [
       { from = "mailer-daemon"; to = "postmaster"; }
diff --git a/lass/2configs/git.nix b/lass/2configs/git.nix
index eb606037e..61a352bde 100644
--- a/lass/2configs/git.nix
+++ b/lass/2configs/git.nix
@@ -34,6 +34,10 @@ let
       cgit.desc = "take a rss feed and a timeout and print it to stdout";
       cgit.section = "software";
     };
+    nixpkgs = {
+      cgit.desc = "nixpkgs fork";
+      cgit.section = "configuration";
+    };
     stockholm = {
       cgit.desc = "take all the computers hostage, they'll love you!";
       cgit.section = "configuration";
diff --git a/lass/2configs/newsbot-js.nix b/lass/2configs/newsbot-js.nix
deleted file mode 100644
index 5e028a3fb..000000000
--- a/lass/2configs/newsbot-js.nix
+++ /dev/null
@@ -1,180 +0,0 @@
-{ config, pkgs, ... }:
-
-let
-  newsfile = pkgs.writeText "feeds" ''
-    aje|http://www.aljazeera.com/Services/Rss/?PostingId=2007731105943979989|#news
-    allafrica|http://allafrica.com/tools/headlines/rdf/latest/headlines.rdf|#news
-    antirez|http://antirez.com/rss|#news
-    arbor|http://feeds2.feedburner.com/asert/|#news
-    archlinux|http://www.archlinux.org/feeds/news/|#news
-    ars|http://feeds.arstechnica.com/arstechnica/index?format=xml|#news
-    augustl|http://augustl.com/atom.xml|#news
-    bbc|http://feeds.bbci.co.uk/news/rss.xml|#news
-    bdt_aktuelle_themen|http://www.bundestag.de/blueprint/servlet/service/de/14154/asFeed/index.rss|#news
-    bdt_drucksachen|http://www.bundestag.de/dip21rss/bundestag_drucksachen.rss|#news #bundestag
-    bdt_plenarproto|http://www.bundestag.de/rss_feeds/plenarprotokolle.rss|#news #bundestag
-    bdt_pressemitteilungen|http://www.bundestag.de/blueprint/servlet/service/de/273112/asFeed/index.rss|#news
-    bitcoinpakistan|https://bitcoinspakistan.com/feed/|#news #financial
-    cancer|http://feeds.feedburner.com/ncinewsreleases?format=xml|#news
-    carta|http://feeds2.feedburner.com/carta-standard-rss|#news
-    catholic_news|http://feeds.feedburner.com/catholicnewsagency/dailynews|#news
-    cbc_busi|http://rss.cbc.ca/lineup/business.xml|#news
-    cbc_offbeat|http://www.cbc.ca/cmlink/rss-offbeat|#news
-    cbc_pol|http://rss.cbc.ca/lineup/politics.xml|#news
-    cbc_tech|http://rss.cbc.ca/lineup/technology.xml|#news
-    cbc_top|http://rss.cbc.ca/lineup/topstories.xml|#news
-    ccc|http://www.ccc.de/rss/updates.rdf|#news
-    chan_b|https://boards.4chan.org/b/index.rss|#brainfuck
-    chan_biz|https://boards.4chan.org/biz/index.rss|#news #brainfuck
-    chan_g|https://boards.4chan.org/g/index.rss|#news
-    chan_int|https://boards.4chan.org/int/index.rss|#news #brainfuck
-    chan_sci|https://boards.4chan.org/sci/index.rss|#news
-    chan_x|https://boards.4chan.org/x/index.rss|#news
-    c|http://www.tempolimit-lichtgeschwindigkeit.de/news.xml|#news
-    cryptogon|http://www.cryptogon.com/?feed=rss2|#news
-    csm|http://rss.csmonitor.com/feeds/csm|#news
-    csm_world|http://rss.csmonitor.com/feeds/world|#news
-    danisch|http://www.danisch.de/blog/feed/|#news
-    dod|http://www.defense.gov/news/afps2.xml|#news
-    dwn|http://deutsche-wirtschafts-nachrichten.de/feed/customfeed/|#news
-    ecat|http://ecat.com/feed|#news
-    eia_press|http://www.eia.gov/rss/press_rss.xml|#news
-    eia_today|http://www.eia.gov/rss/todayinenergy.xml|#news
-    embargowatch|https://embargowatch.wordpress.com/feed/|#news
-    ethereum-comments|http://blog.ethereum.org/comments/feed|#news
-    ethereum|http://blog.ethereum.org/feed|#news
-    europa_ric|http://ec.europa.eu/research/infocentre/rss/infocentre-rss.xml|#news
-    eu_survei|http://www.eurosurveillance.org/public/RSSFeed/RSS.aspx|#news
-    exploitdb|http://www.exploit-db.com/rss.xml|#news
-    fars|http://www.farsnews.com/rss.php|#news #test
-    faz_feui|http://www.faz.net/rss/aktuell/feuilleton/|#news
-    faz_politik|http://www.faz.net/rss/aktuell/politik/|#news
-    faz_wirtschaft|http://www.faz.net/rss/aktuell/wirtschaft/|#news
-    fbi|https://www.fbi.gov/news/rss.xml|#news
-    fedreserve|http://www.federalreserve.gov/feeds/press_all.xml|#news
-    fefe|http://blog.fefe.de/rss.xml|#news
-    forbes|http://www.forbes.com/forbes/feed2/|#news
-    forbes_realtime|http://www.forbes.com/real-time/feed2/|#news
-    fox|http://feeds.foxnews.com/foxnews/latest|#news
-    geheimorganisation|http://geheimorganisation.org/feed/|#news
-    GerForPol|http://www.german-foreign-policy.com/de/news/rss-2.0|#news
-    gmanet|http://www.gmanetwork.com/news/rss/news|#news
-    golem|https://rss.golem.de/rss.php|#news
-    google|http://news.google.com/?output=rss|#news
-    greenpeace|http://feeds.feedburner.com/GreenpeaceNews|#news
-    guardian_uk|http://feeds.theguardian.com/theguardian/uk-news/rss|#news
-    gulli|http://ticker.gulli.com/rss/|#news
-    hackernews|https://news.ycombinator.com/rss|#news
-    handelsblatt|http://www.handelsblatt.com/contentexport/feed/schlagzeilen|#news #financial
-    heise|https://www.heise.de/newsticker/heise-atom.xml|#news
-    hindu_business|http://www.thehindubusinessline.com/?service=rss|#news #financial
-    hindu|http://www.thehindu.com/?service=rss|#news
-    ign|http://feeds.ign.com/ign/all|#news
-    independent|http://www.independent.com/rss/headlines/|#news
-    indymedia|https://de.indymedia.org/rss.xml|#news
-    info_libera|http://www.informationliberation.com/rss.xml|#news
-    klagen-gegen-rundfuckbeitrag|http://klagen-gegen-rundfunkbeitrag.blogspot.com/feeds/posts/default|#news
-    korea_herald|http://www.koreaherald.com/rss_xml.php|#news
-    linuxinsider|http://www.linuxinsider.com/perl/syndication/rssfull.pl|#news
-    lisp|http://planet.lisp.org/rss20.xml|#news
-    liveleak|http://www.liveleak.com/rss|#news
-    lolmythesis|http://lolmythesis.com/rss|#news
-    LtU|http://lambda-the-ultimate.org/rss.xml|#news
-    lukepalmer|http://lukepalmer.wordpress.com/feed/|#news
-    mit|http://web.mit.edu/newsoffice/rss-feeds.feed?type=rss|#news
-    mongrel2_master|https://github.com/zedshaw/mongrel2/commits/master.atom|#news
-    nds|http://www.nachdenkseiten.de/?feed=atom|#news
-    netzpolitik|https://netzpolitik.org/feed/|#news
-    newsbtc|http://newsbtc.com/feed/|#news #financial
-    nnewsg|http://www.net-news-global.net/rss/rssfeed.xml|#news
-    npr_busi|http://www.npr.org/rss/rss.php?id=1006|#news
-    npr_headlines|http://www.npr.org/rss/rss.php?id=1001|#news
-    npr_pol|http://www.npr.org/rss/rss.php?id=1012|#news
-    npr_world|http://www.npr.org/rss/rss.php?id=1004|#news
-    nsa|https://www.nsa.gov/rss.xml|#news #bullerei
-    nytimes|http://rss.nytimes.com/services/xml/rss/nyt/World.xml|#news
-    painload|https://github.com/krebscode/painload/commits/master.atom|#news
-    phys|http://phys.org/rss-feed/|#news
-    piraten|https://www.piratenpartei.de/feed/|#news
-    polizei_berlin|http://www.berlin.de/polizei/presse-fahndung/_rss_presse.xml|#news #bullerei
-    presse_polizei|http://www.presseportal.de/rss/polizei.rss2|#news #bullerei
-    presseportal|http://www.presseportal.de/rss/presseportal.rss2|#news
-    prisonplanet|http://prisonplanet.com/feed.rss|#news
-    rawstory|http://www.rawstory.com/rs/feed/|#news
-    reddit_4chan|http://www.reddit.com/r/4chan/new/.rss|#news #brainfuck
-    reddit_anticonsum|http://www.reddit.com/r/Anticonsumption/new/.rss|#news
-    reddit_btc|http://www.reddit.com/r/Bitcoin/new/.rss|#news #financial
-    reddit_consp|http://reddit.com/r/conspiracy/.rss|#news
-    reddit_haskell|http://www.reddit.com/r/haskell/.rss|#news
-    reddit_nix|http://www.reddit.com/r/nixos/.rss|#news
-    reddit_prog|http://www.reddit.com/r/programming/new/.rss|#news
-    reddit_sci|http://www.reddit.com/r/science/.rss|#news
-    reddit_tech|http://www.reddit.com/r/technology/.rss|#news
-    reddit_tpp|http://www.reddit.com/r/twitchplayspokemon/.rss|#news #tpp
-    reddit_world|http://www.reddit.com/r/worldnews/.rss|#news
-    r-ethereum|http://www.reddit.com/r/ethereum/.rss|#news
-    reuters|http://feeds.reuters.com/Reuters/worldNews|#news
-    reuters-odd|http://feeds.reuters.com/reuters/oddlyEnoughNews?format=xml|#news
-    rt|http://rt.com/rss/news/|#news
-    schallurauch|http://feeds.feedburner.com/SchallUndRauch|#news
-    sciencemag|http://news.sciencemag.org/rss/current.xml|#news
-    scmp|http://www.scmp.com/rss/91/feed|#news
-    sec-db|http://feeds.security-database.com/SecurityDatabaseToolsWatch|#news
-    shackspace|http://blog.shackspace.de/?feed=rss2|#news
-    shz_news|http://www.shz.de/nachrichten/newsticker/rss|#news
-    sky_busi|http://feeds.skynews.com/feeds/rss/business.xml|#news
-    sky_pol|http://feeds.skynews.com/feeds/rss/politics.xml|#news
-    sky_strange|http://feeds.skynews.com/feeds/rss/strange.xml|#news
-    sky_tech|http://feeds.skynews.com/feeds/rss/technology.xml|#news
-    sky_world|http://feeds.skynews.com/feeds/rss/world.xml|#news
-    slashdot|http://rss.slashdot.org/Slashdot/slashdot|#news
-    slate|http://feeds.slate.com/slate|#news
-    spiegel_eil|http://www.spiegel.de/schlagzeilen/eilmeldungen/index.rss|#news
-    spiegelfechter|http://feeds.feedburner.com/DerSpiegelfechter?format=xml|#news
-    spiegel_top|http://www.spiegel.de/schlagzeilen/tops/index.rss|#news
-    standardmedia_ke|http://www.standardmedia.co.ke/rss/headlines.php|#news
-    stern|http://www.stern.de/feed/standard/all/|#news
-    stz|http://www.stuttgarter-zeitung.de/rss/topthemen.rss.feed|#news
-    sz_politik|http://rss.sueddeutsche.de/rss/Politik|#news
-    sz_wirtschaft|http://rss.sueddeutsche.de/rss/Wirtschaft|#news #financial
-    sz_wissen|http://rss.sueddeutsche.de/rss/Wissen|#news
-    tagesschau|http://www.tagesschau.de/newsticker.rdf|#news
-    taz|http://taz.de/Themen-des-Tages/!p15;rss/|#news
-    telegraph_finance|http://www.telegraph.co.uk/finance/rss|#news #financial
-    telegraph_pol|http://www.telegraph.co.uk/news/politics/rss|#news
-    telegraph_uk|http://www.telegraph.co.uk/news/uknews/rss|#news
-    telegraph_world|http://www.telegraph.co.uk/news/worldnews/rss|#news
-    telepolis|http://www.heise.de/tp/rss/news-atom.xml|#news
-    the_insider|http://www.theinsider.org/rss/news/headlines-xml.asp|#news
-    tigsource|http://www.tigsource.com/feed/|#news
-    tinc|http://tinc-vpn.org/news/index.rss|#news
-    topix_b|http://www.topix.com/rss/wire/de/berlin|#news
-    torr_bits|http://feeds.feedburner.com/TorrentfreakBits|#news
-    torrentfreak|http://feeds.feedburner.com/Torrentfreak|#news
-    torr_news|http://feed.torrentfreak.com/Torrentfreak/|#news
-    travel_warnings|http://feeds.travel.state.gov/ca/travelwarnings-alerts|#news
-    un_afr|http://www.un.org/apps/news/rss/rss_africa.asp|#news
-    un_am|http://www.un.org/apps/news/rss/rss_americas.asp|#news
-    un_eu|http://www.un.org/apps/news/rss/rss_europe.asp|#news
-    un_me|http://www.un.org/apps/news/rss/rss_mideast.asp|#news
-    un_pac|http://www.un.org/apps/news/rss/rss_asiapac.asp|#news
-    un_top|http://www.un.org/apps/news/rss/rss_top.asp|#news
-    us_math_society|http://www.ams.org/cgi-bin/content/news_items.cgi?rss=1|#news
-    vimperator|https://sites.google.com/a/vimperator.org/www/blog/posts.xml|#news
-    weechat|http://dev.weechat.org/feed/atom|#news
-    wp_world|http://feeds.washingtonpost.com/rss/rss_blogpost|#news
-    xkcd|https://xkcd.com/rss.xml|#news
-    zdnet|http://www.zdnet.com/news/rss.xml|#news
-  '';
-in {
-  environment.systemPackages = [
-    pkgs.newsbot-js
-  ];
-  krebs.newsbot-js = {
-    enable = true;
-    ircServer = "localhost";
-    feeds = newsfile;
-    urlShortenerHost = "go";
-    urlShortenerPort = "80";
-  };
-}
diff --git a/lass/2configs/coders-irc.nix b/lass/2configs/reaktor-coders.nix
similarity index 100%
rename from lass/2configs/coders-irc.nix
rename to lass/2configs/reaktor-coders.nix
diff --git a/lass/2configs/reaktor-krebs.nix b/lass/2configs/reaktor-krebs.nix
new file mode 100644
index 000000000..6b17b457d
--- /dev/null
+++ b/lass/2configs/reaktor-krebs.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+with import <stockholm/lib>;
+
+{
+  krebs.Reaktor.krebs = {
+    nickname = "Reaktor|krebs";
+    channels = [
+      "#krebs"
+      "#nixos-wiki"
+    ];
+    extraEnviron = {
+      REAKTOR_HOST = "irc.freenode.org";
+    };
+    plugins = with pkgs.ReaktorPlugins; [
+      sed-plugin
+      wiki-todo-add
+      wiki-todo-done
+      wiki-todo-show
+    ];
+  };
+  services.nginx.virtualHosts."lassul.us".locations."/wiki-todo".extraConfig = ''
+    default_type "text/plain";
+    alias /var/lib/Reaktor/state/wiki-todo;
+  '';
+}
diff --git a/lass/2configs/repo-sync.nix b/lass/2configs/repo-sync.nix
index 0b6cd8231..f0c0ebfee 100644
--- a/lass/2configs/repo-sync.nix
+++ b/lass/2configs/repo-sync.nix
@@ -107,7 +107,6 @@ in {
     (sync-remote "painload" "https://github.com/krebscode/painload")
     (sync-remote "Reaktor" "https://github.com/krebscode/Reaktor")
     (sync-remote "nixos-wiki" "https://github.com/Mic92/nixos-wiki.wiki.git")
-    (sync-remote-silent "nixpkgs" "https://github.com/nixos/nixpkgs")
     (sync-retiolum "go")
     (sync-retiolum "much")
     (sync-retiolum "newsbot-js")
diff --git a/lass/2configs/xresources.nix b/lass/2configs/xresources.nix
index b5ba3df14..2fbc31677 100644
--- a/lass/2configs/xresources.nix
+++ b/lass/2configs/xresources.nix
@@ -14,7 +14,9 @@ let
     ! ref https://github.com/muennich/urxvt-perls
     URxvt.perl-lib: ${pkgs.urxvt_perls}/lib/urxvt/perl
     URxvt.perl-ext-common:      default,clipboard,url-select,keyboard-select
-    URxvt.url-select.launcher:  ${config.lass.browser.select}/bin/browser-select
+    ${optionalString (hasAttr "browser" config.lass)
+      "URxvt.url-select.launcher:  ${config.lass.browser.select}/bin/browser-select"
+    }
     URxvt.url-select.underline: true
     URxvt.keysym.M-u:           perl:url-select:select_next
     URxvt.keysym.M-Escape:      perl:keyboard-select:activate
diff --git a/lass/5pkgs/xmonad-lass.nix b/lass/5pkgs/xmonad-lass.nix
index 38a9550df..67a1dc787 100644
--- a/lass/5pkgs/xmonad-lass.nix
+++ b/lass/5pkgs/xmonad-lass.nix
@@ -130,6 +130,11 @@ myKeyMap =
     , ("M4-S-q", return ())
 
     , ("M4-w", floatNext True >> spawn "${pkgs.copyq}/bin/copyq show")
+
+    , ("M4-<F1>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 1")
+    , ("M4-<F2>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 10")
+    , ("M4-<F3>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 33")
+    , ("M4-<F4>", spawn "${pkgs.xorg.xbacklight}/bin/xbacklight -set 100")
     ]
 
 forkFile :: FilePath -> [String] -> Maybe [(String, String)] -> X ()
diff --git a/lass/source.nix b/lass/source.nix
index 26c668241..52b0d99f2 100644
--- a/lass/source.nix
+++ b/lass/source.nix
@@ -1,24 +1,27 @@
 with import <stockholm/lib>;
-host@{ name, secure ? false }: let
+host@{ name, secure ? false, override ? {} }: let
   builder = if getEnv "dummy_secrets" == "true"
               then "buildbot"
               else "lass";
   _file = <stockholm> + "/lass/1systems/${name}/source.nix";
 in
-  evalSource (toString _file) {
-    nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix";
-    secrets.file = getAttr builder {
-      buildbot = toString <stockholm/lass/2configs/tests/dummy-secrets>;
-      lass = "/home/lass/secrets/${name}";
-    };
-    stockholm.file = toString <stockholm>;
-    nixpkgs.git = {
-      url = http://cgit.lassul.us/nixpkgs;
-      # nixos-17.03
-      # + copytoram:
-      #   87a4615 & 334ac4f
-      # + acme permissions for groups
-      #   fd7a8f1
-      ref = "fe46ffc";
-    };
-  }
+  evalSource (toString _file) [
+    {
+      nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix";
+      nixpkgs.git = {
+        url = http://cgit.lassul.us/nixpkgs;
+        # nixos-17.03
+        # + copytoram:
+        #   87a4615 & 334ac4f
+        # + acme permissions for groups
+        #   fd7a8f1
+        ref = "fe46ffc";
+      };
+      secrets.file = getAttr builder {
+        buildbot = toString <stockholm/lass/2configs/tests/dummy-secrets>;
+        lass = "/home/lass/secrets/${name}";
+      };
+      stockholm.file = toString <stockholm>;
+    }
+    override
+  ]
diff --git a/nin/source.nix b/nin/source.nix
index 5dd4311f2..183c71bae 100644
--- a/nin/source.nix
+++ b/nin/source.nix
@@ -14,6 +14,6 @@ in
     stockholm.file = toString <stockholm>;
     nixpkgs.git = {
       url = https://github.com/nixos/nixpkgs;
-      ref = "01c3847";
+      ref = "799435b";
     };
   }