diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..ba31e1e8ab4a737d3ce2400e6973b13a98e39def
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2011-2012 Travis Glenn Hansen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/fanout.c b/fanout.c
index d6a0b1afc439b29e73a1b3e5d9990028610a8c09..b52bde55e0f62f0c6c5e0876262cd1d093ecd0d6 100644
--- a/fanout.c
+++ b/fanout.c
@@ -1,6 +1,7 @@
-/* A simple server in the internet domain using TCP
-   The port number is passed as an argument 
-   https://github.com/hbons/fanout.node.js/blob/master/fanout.js*/
+/*
+   A simple server in the internet domain using TCP
+   MIT Licensed
+*/
 
 #define _GNU_SOURCE
 #include <stdio.h>
@@ -85,27 +86,21 @@ long server_start_time;
 
 //announcement stats
 unsigned long long announcements_count =0;
-unsigned long long announcements_count_multiplier = 0;
 
 //messages stats
 unsigned long long messages_count =0;
-unsigned long long messages_count_multiplier = 0;
 
 //subscription stats
 unsigned long long subscriptions_count =0;
-unsigned long long subscriptions_count_multiplier = 0;
 
 //unsubscription stats
 unsigned long long unsubscriptions_count =0;
-unsigned long long unsubscriptions_count_multiplier = 0;
 
 //ping stats
 unsigned long long pings_count =0;
-unsigned long long pings_count_multiplier = 0;
 
 //connection/client stats
 unsigned long long clients_count =0;
-unsigned long long clients_count_multiplier = 0;
 
 static int daemonize = 0;
 
@@ -322,7 +317,7 @@ int main (int argc, char *argv[])
 
             //stats
             if (clients_count == ULLONG_MAX) {
-                clients_count_multiplier++;
+                fanout_debug (1, "wow, you've accepted alot of connections..resetting counter\n");
                 clients_count = 0;
             }
             clients_count++;
@@ -546,7 +541,7 @@ struct client *get_client (int fd)
             return client_i;
         client_i = client_i->next;
     }
-    fanout_error ("client does not exist");
+    return NULL;
 }
 
 
@@ -633,7 +628,7 @@ void client_process_input_buffer (struct client *c)
             free (message);
             message = NULL;
             if (pings_count == ULLONG_MAX) {
-                pings_count_multiplier++;
+                fanout_debug (1, "wow, you've pinged alot..resetting counter\n");
                 pings_count = 0;
             }
             pings_count++;
@@ -659,6 +654,8 @@ void client_process_input_buffer (struct client *c)
             //uptime
             long uptime = (long)time (NULL) - server_start_time;
 
+            //averages
+
             asprintf (&message,
 "uptime: %ldd %ldh %ldm %lds\n\
 max connections: %d\n\
@@ -666,27 +663,20 @@ current connections: %d\n\
 current channels: %d\n\
 current subscriptions: %d\n\
 user-requested subscriptions: %d\n\
-total connections: %llu + (%llu * %llu)\n\
-total announcements: %llu + (%llu * %llu)\n\
-total messages: %llu + (%llu * %llu)\n\
-total subscribes: %llu + (%llu * %llu)\n\
-total unsubscribes: %llu + (%llu * %llu)\n\
-total pings: %llu + (%llu * %llu)\
+total connections: %llu\n\
+total announcements: %llu\n\
+total messages: %llu\n\
+total subscribes: %llu\n\
+total unsubscribes: %llu\n\
+total pings: %llu\
 \n",                   uptime/3600/24, uptime/3600%24,
                        uptime/60%60, uptime%60,
                        max_connection_count,
                        current_client_count, current_channel_count,
                        current_subscription_count,
                        current_requested_subscriptions, clients_count,
-                       ULLONG_MAX, clients_count_multiplier,
-                       announcements_count, ULLONG_MAX,
-                       announcements_count_multiplier,
-                       messages_count, ULLONG_MAX, messages_count_multiplier,
-                       subscriptions_count, ULLONG_MAX,
-                       subscriptions_count_multiplier,
-                       unsubscriptions_count, ULLONG_MAX,
-                       unsubscriptions_count_multiplier, pings_count,
-                       ULLONG_MAX, pings_count_multiplier);
+                       announcements_count, messages_count, subscriptions_count,
+                       unsubscriptions_count, pings_count);
             client_write (c, message);
             free (message);
             message = NULL;
@@ -750,6 +740,7 @@ struct subscription *get_subscription (struct client *c,
             return subscription_i;
         subscription_i = subscription_i->next;
     }
+    return NULL;
 }
 
 
@@ -803,7 +794,7 @@ void announce (const char *channel, const char *message)
             client_write (subscription_i->client, s);
             //message stats
             if (messages_count == ULLONG_MAX) {
-                messages_count_multiplier++;
+                fanout_debug (1, "wow, you've sent a lot of messages..resetting counter\n");
                 messages_count = 0;
             }
             messages_count++;
@@ -812,7 +803,7 @@ void announce (const char *channel, const char *message)
     }
     fanout_debug (2, "announced messge %s", s);
     if (announcements_count == ULLONG_MAX) {
-        announcements_count_multiplier++;
+        fanout_debug (1, "wow, you've announced alot..resetting counter\n");
         announcements_count = 0;
     }
     announcements_count++;
@@ -843,7 +834,7 @@ void subscribe (struct client *c, const char *channel_name)
                    subscription_i->channel->name);
 
     if (subscriptions_count == ULLONG_MAX) {
-        subscriptions_count_multiplier++;
+        fanout_debug (1, "wow, you've subscribed alot..resetting counter\n");
         subscriptions_count = 0;
     }
     subscriptions_count++;
@@ -873,7 +864,7 @@ void unsubscribe (struct client *c, const char *channel_name)
             channel->subscription_count--;
 
             if (unsubscriptions_count == ULLONG_MAX) {
-                unsubscriptions_count_multiplier++;
+                fanout_debug (1, "wow, you've unsubscribed alot..resetting counter\n");
                 unsubscriptions_count = 0;
             }
             unsubscriptions_count++;