diff --git a/README.md b/README.md
index e65e96c..2cb8e27 100644
--- a/README.md
+++ b/README.md
@@ -37,8 +37,12 @@ module.exports = {
             },
             "messages": {
                 "success": "${timeAgo} ${item.title} - ${messages} - ${shortUrl}",
-                "errorThreshold": "You did try to fetch more feed items that is allowed! Maximum feed item count is ${config.messageCount.maximum}",
-                "errorNoFeedItems": "Sorry no GitHub public activity feed items for ${username} - ${url}"
+                "errors": {
+                    "threshold": "You did try to fetch more feed items that is allowed! Maximum feed item count is ${config.messageCount.maximum}",
+                    "request": "Oh noes error with request - ${error}",
+                    "feedParser": "Oh noes error with FeedParser - ${error}",
+                    "noItems": "Sorry no GitHub public activity feed items for ${username} - ${url}"
+                }
             }
         }
     }
@@ -88,11 +92,19 @@ messages        = GitHub messages from feed item (commit messages, comment title
 shortUrl        = Feed item link value as in "shorturl" form
 ```
 
-#### messages.errorThreshold
+#### messages.errors.threshold
 Message that is emitted to user when he/she has requested more feed items that are allowed. Note that this message is 
 sent to user as a private message.
 
-#### messages.errorNoFeedItems
+#### messages.errors.request
+Message that is emitted to user whenever HTTP request error occurs when plugin is processing GitHub feed URL. Note that
+this message is sent to user as a private message.
+ 
+#### messages.errors.feedParser
+Message that is emitted to user whenever FeedParser error occurs when plugin is processing feed item. Note that this 
+message is sent to user as a private message.
+
+#### messages.errors.noItems
 Message that is emitted to user when he/she has requested GitHub feeds from user that is a real GitHub user but he/she
 doesn't have feed items yet. Note that this message is sent to user as a private message.
 
@@ -113,3 +125,8 @@ Note that default count of items is one (1) and it can be configured.
 * [Moment.js](http://momentjs.com/) - Parse, validate, manipulate, and display dates in JavaScript.
 * [cheerio](https://github.com/cheeriojs/cheerio) - Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
 * [node-shorturl](https://github.com/jdub/node-shorturl) - shorturl is a simple, asynchronous client library for common URL shortener services.
+
+## Future plans
+Add more GitHub specified actions to this plugin like;
+* Repository issue/pr/author/milestone lists (latest, etc.)
+* More? Do you have an idea? please make PR here!
diff --git a/index.js b/index.js
index f1c5484..88fa606 100644
--- a/index.js
+++ b/index.js
@@ -5,7 +5,7 @@
  */
 var FeedParser = require('feedparser');
 var request = require('request');
-var cheerio = require('cheerio')
+var cheerio = require('cheerio');
 var moment = require('moment');
 var shorturl = require('shorturl');
 var _ = require('lodash');
@@ -15,6 +15,8 @@ var _ = require('lodash');
  *
  * @todo    Refactor regexp part of plugin
  * @todo    Add messages for req and feedparser errors
+ * @todo    What else messages there can be on feed? Now this supports only commits and comments
+ * @todo    Move default configuration to separated file.
  *
  * @param  {Object} options Plugin options object, description below.
  *   db: {mongoose} the mongodb connection
@@ -43,8 +45,12 @@ module.exports = function init(options) {
      *              },
      *              messages: {
      *                  success: string,
-     *                  errorThreshold: string,
-     *                  errorNoFeedItems: string
+     *                  errors: {
+     *                      threshold: string,
+     *                      request: string,
+     *                      feedParser: string,
+     *                      noItems: string
+     *                  }
      *              }
      *          }}
      */
@@ -60,8 +66,12 @@ module.exports = function init(options) {
         },
         "messages": {
             "success": "${timeAgo} ${item.title} - ${messages} - ${shortUrl}",
-            "errorThreshold": "You did try to fetch more feed items that is allowed! Maximum feed item count is ${config.messageCount.maximum}",
-            "errorNoFeedItems": "Sorry no GitHub public activity feed items for ${username} - ${url}"
+            "errors": {
+                "threshold": "You did try to fetch more feed items that is allowed! Maximum feed item count is ${config.messageCount.maximum}",
+                "request": "Oh noes error with request - ${error}",
+                "feedParser": "Oh noes error with FeedParser - ${error}",
+                "noItems": "Sorry no GitHub public activity feed items for ${username} - ${url}"
+            }
         }
     };
 
@@ -90,12 +100,6 @@ module.exports = function init(options) {
                     username = matches[1];
                 }
 
-                if (itemCount > pluginConfig.messageCount.maximum) {
-                    channel.say(pluginConfig.messages.errorThreshold, from);
-
-                    return;
-                }
-
                 // Default template variables
                 var templateVars = {
                     "url": "https://github.com/" + username + ".atom",
@@ -104,13 +108,22 @@ module.exports = function init(options) {
                     "config": pluginConfig
                 };
 
+                // User did try to get more feed items that is allowed
+                if (itemCount > pluginConfig.messageCount.maximum) {
+                    channel.say(pluginConfig.messages.errors.threshold, from);
+
+                    return;
+                }
+
                 // Make new request and initialize FeedParser
                 var req = request(templateVars.url);
-                var feedparser = new FeedParser();
+                var feedParser = new FeedParser();
 
                 // On request error send message to user
                 req.on("error", function onError(error) {
-                    channel.say("Oh noes error with request - " + error, from);
+                    templateVars.error = error;
+
+                    channel.say(pluginConfig.messages.errors.request, from);
                 });
 
                 // On request response pipe stream to FeedParser
@@ -122,12 +135,14 @@ module.exports = function init(options) {
                         return this.emit("error", new Error("Bad status code"));
                     }
 
-                    stream.pipe(feedparser);
+                    stream.pipe(feedParser);
                 });
 
                 // On FeedParser error send message to user
-                feedparser.on("error", function onError(error) {
-                    channel.say("Oh noes error with FeedParser - " + error, from);
+                feedParser.on("error", function onError(error) {
+                    templateVars.error = error;
+
+                    channel.say(pluginConfig.messages.errors.feedParser, from);
                 });
 
                 // Initialize counter
@@ -137,18 +152,22 @@ module.exports = function init(options) {
                 var target = itemCount > pluginConfig.messageCount.threshold ? from : undefined;
 
                 // On FeedParser result
-                feedparser.on("readable", function iterator() {
+                feedParser.on("readable", function iterator() {
                     var stream = this;
                     var item;
 
                     // Iterate each feed item
                     while (item = stream.read()) {
                         if (i < itemCount) {
+                            // Add extra template variables
                             templateVars.item = item;
                             templateVars.formattedDate = moment(item.date).format(pluginConfig.moment.format);
                             templateVars.timeAgo = moment(item.date).fromNow();
 
+                            // Parse item description as 'jQuery' object
                             var $ = cheerio.load(item.description);
+
+                            // Initialize "real" GitHub messages
                             var messages = [];
 
                             // Check possible commit messages
@@ -165,7 +184,8 @@ module.exports = function init(options) {
 
                             templateVars.messages = messages.length ? messages.join(', ') : 'No detailed info';
 
-                            shorturl(item.link, function(shortUrl) {
+                            // Fetch shorturl for current feed item
+                            shorturl(item.link, function done(shortUrl) {
                                 templateVars.shortUrl = shortUrl;
 
                                 channel.say(_.template(pluginConfig.messages.success, templateVars), target);
@@ -179,9 +199,10 @@ module.exports = function init(options) {
                 });
 
                 // And after all is done
-                feedparser.on("end", function onEnd() {
+                feedParser.on('end', function onEnd() {
+                    // Didn't find any feed items, so sent message about that to user
                     if (i === 0) {
-                        channel.say(_.template(pluginConfig.messages.errorNoFeedItems, templateVars), from);
+                        channel.say(_.template(pluginConfig.messages.noItems, templateVars), from);
                     }
                 });
             }