whole_func_string: function listener(bot) {
    return function(buffer) {
      var line = buffer.toString();
      var truncatedLine = line.slice(0,line.length-1);
      if (current_actions && !isNaN(parseInt(truncatedLine)) &&
          parseInt(truncatedLine) < current_actions.length) {
        var action = current_actions[parseInt(truncatedLine)];
        current_actions = null;
        if (typeof action === "string") {
          bot(platform, { sessionId: sessionId }, { type: 'action', message: action, action: action }, oncomplete);
        } else if (action.url) {
          request(action.url, function (error, response, body) {
            var article = unfluff(body);
            console.log(bot_name + ' > Processed Body For ' + article.title);
            console.log('\n'+article.text+'\n');
            oncomplete(null, null, null, function() {});
          });
        } else {
          bot(platform, { sessionId: sessionId }, { type: 'action', message: ''+action.payload, action: action.payload }, oncomplete);
        }
      } else {
        current_actions = null;
        bot(platform, { sessionId: sessionId }, { type: 'message', message: truncatedLine }, oncomplete);
      }
    };
  }
func_code_string: function listener(bot) {
    return function(buffer) {
      var line = buffer.toString();
      var truncatedLine = line.slice(0,line.length-1);
      if (current_actions && !isNaN(parseInt(truncatedLine)) &&
          parseInt(truncatedLine) < current_actions.length) {
        var action = current_actions[parseInt(truncatedLine)];
        current_actions = null;
        if (typeof action === "string") {
          bot(platform, { sessionId: sessionId }, { type: 'action', message: action, action: action }, oncomplete);
        } else if (action.url) {
          request(action.url, function (error, response, body) {
            var article = unfluff(body);
            console.log(bot_name + ' > Processed Body For ' + article.title);
            console.log('\n'+article.text+'\n');
            oncomplete(null, null, null, function() {});
          });
        } else {
          bot(platform, { sessionId: sessionId }, { type: 'action', message: ''+action.payload, action: action.payload }, oncomplete);
        }
      } else {
        current_actions = null;
        bot(platform, { sessionId: sessionId }, { type: 'message', message: truncatedLine }, oncomplete);
      }
    };
  }
func_documentation_string: Define our stdin listener