diff --git a/index.js b/index.js
index b948476..7e50795 100644
--- a/index.js
+++ b/index.js
@@ -1,5 +1,40 @@
+var name = 'Store DOMPUL stock';
+var logger = require('winston');
+logger.info('Starting ' + name);
+
+logger.info('Parsing config file');
 var iniparser = require('iniparser');
 var config = iniparser.parseSync('./config.ini');
 
+logger.info('Creating redis clients for ' + config.globals.redis_host + ':' + config.globals.redis_port);
 var redis = require('redis');
-var redisClient = redis.createClient();
+var redisClient = redis.createClient(config.globals.redis_port, config.globals.redis_host);
+var redisSubscriber = redis.createClient(config.globals.redis_port, config.globals.redis_host);
+
+redisSubscriber.on('message', function(channel, message) {
+    if (channel == config.channels.dompul_proxy_topup) {
+        var params = JSON.parse(message);
+        
+        if (params['resp_code'] != '00') return;
+        
+        redisClient.hset('stock.dompul.by-denom.' + params['ussd_nom'], params['ussd_chipinfo'], parseInt(params['ussd_stok']));
+        redisClient.hset('stock.dompul.by-chipinfo.' + params['ussd_chipinfo'], params['ussd_nom'], parseInt(params['ussd_stok']));
+        
+        var key = 'stock.dompul.by-denom.' + params['ussd_nom'];
+        redisClient.hgetall(key, function(err, obj) {
+            var chips = Object.getOwnPropertyNames(obj);
+            var chipsCount = chips.length;
+            var total = 0;
+            for (var i = 0; i < chipsCount; i++) {
+                total = total + parseInt(obj[chips[i]]);
+            }
+            
+            logger.info(params['ussd_nom'] + ': ' + total);
+        });
+    }
+});
+
+
+logger.info('Subscribing redis channel');
+redisSubscriber.subscribe(config.channels.dompul_proxy_topup);
+logger.info('Waiting for redis message');
diff --git a/package.json b/package.json
index 39c4878..077820b 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
   "dependencies": {
     "redis": "~0.12.1",
     "hiredis": "~0.3.0",
-    "iniparser": "~1.0.5"
+    "iniparser": "~1.0.5",
+    "winston": "~1.0.0"
   }
 }