diff --git a/htroot/NetworkHistory.java b/htroot/NetworkHistory.java
new file mode 100644
index 000000000..cce35a93a
--- /dev/null
+++ b/htroot/NetworkHistory.java
@@ -0,0 +1,136 @@
+/**
+ * NetworkHistory
+ * Copyright 2014 by Michael Peter Christen
+ * First released 10.10.2014 at http://yacy.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program in the file lgpl21.txt
+ * If not, see .
+ */
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.yacy.cora.date.GenericFormatter;
+import net.yacy.cora.document.encoding.ASCII;
+import net.yacy.cora.protocol.RequestHeader;
+import net.yacy.cora.util.ConcurrentLog;
+import net.yacy.kelondro.blob.Tables;
+import net.yacy.kelondro.blob.Tables.Row;
+import net.yacy.search.Switchboard;
+import net.yacy.server.serverObjects;
+import net.yacy.server.serverSwitch;
+import net.yacy.visualization.ChartPlotter;
+import net.yacy.visualization.RasterPlotter;
+
+
+public class NetworkHistory {
+
+ public static RasterPlotter respond(@SuppressWarnings("unused") final RequestHeader header, serverObjects post, final serverSwitch env) {
+ final Switchboard sb = (Switchboard) env;
+
+ if (post == null) post = new serverObjects();
+
+ final int maxtime = post.getInt("maxtime", 48); // hours
+ final int bottomscale = post.getInt("scale", 1); // 1h
+ final String[] columns = post.get("columns", "cC").split("\\|"); // new String[]{"aM", "aW", "aD", "aH", "cC", "cD", "cP", "cR", "cI"};
+ /*
+ aM activeLastMonth
+ aW activeLastWeek
+ aD activeLastDay
+ aH activeLastHour
+ cC countConnected (Active Senior)
+ cD countDisconnected (Passive Senior)
+ cP countPotential (Junior)
+ cR count of the RWI entries
+ cI size of the index (number of documents)
+ */
+
+ // scan the database and put in values
+ List