Replaced underscore and underscore.string modules with lodash
diff --git a/src/node/cli/service_packager.js b/src/node/cli/service_packager.js
index f29180b..c92c450 100644
--- a/src/node/cli/service_packager.js
+++ b/src/node/cli/service_packager.js
@@ -36,7 +36,7 @@
 var fs = require('fs');
 var path = require('path');
 
-var _ = require('underscore');
+var _ = require('lodash');
 var async = require('async');
 var pbjs = require('protobufjs/cli/pbjs');
 var parseArgs = require('minimist');
diff --git a/src/node/examples/perf_test.js b/src/node/examples/perf_test.js
index 31083e0..da919ec 100644
--- a/src/node/examples/perf_test.js
+++ b/src/node/examples/perf_test.js
@@ -35,7 +35,7 @@
 
 var grpc = require('..');
 var testProto = grpc.load(__dirname + '/../interop/test.proto').grpc.testing;
-var _ = require('underscore');
+var _ = require('lodash');
 var interop_server = require('../interop/interop_server.js');
 
 function runTest(iterations, callback) {
diff --git a/src/node/examples/route_guide_client.js b/src/node/examples/route_guide_client.js
index 0b3e9c5..8cd532f 100644
--- a/src/node/examples/route_guide_client.js
+++ b/src/node/examples/route_guide_client.js
@@ -37,7 +37,7 @@
 var fs = require('fs');
 var parseArgs = require('minimist');
 var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
 var grpc = require('..');
 var examples = grpc.load(__dirname + '/route_guide.proto').examples;
 var client = new examples.RouteGuide('localhost:50051');
diff --git a/src/node/examples/route_guide_server.js b/src/node/examples/route_guide_server.js
index 9555368..c777eab 100644
--- a/src/node/examples/route_guide_server.js
+++ b/src/node/examples/route_guide_server.js
@@ -36,7 +36,7 @@
 var fs = require('fs');
 var parseArgs = require('minimist');
 var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
 var grpc = require('..');
 var examples = grpc.load(__dirname + '/route_guide.proto').examples;
 
diff --git a/src/node/examples/stock_server.js b/src/node/examples/stock_server.js
index 8c22af1..caaf9f9 100644
--- a/src/node/examples/stock_server.js
+++ b/src/node/examples/stock_server.js
@@ -33,7 +33,7 @@
 
 'use strict';
 
-var _ = require('underscore');
+var _ = require('lodash');
 var grpc = require('..');
 var examples = grpc.load(__dirname + '/stock.proto').examples;
 
diff --git a/src/node/index.js b/src/node/index.js
index c09e416..b6a4e2d 100644
--- a/src/node/index.js
+++ b/src/node/index.js
@@ -33,7 +33,7 @@
 
 'use strict';
 
-var _ = require('underscore');
+var _ = require('lodash');
 
 var ProtoBuf = require('protobufjs');
 
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 455055d..b61b0b6 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -35,7 +35,7 @@
 
 var fs = require('fs');
 var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
 var grpc = require('..');
 var testProto = grpc.load(__dirname + '/test.proto').grpc.testing;
 var GoogleAuth = require('google-auth-library');
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index dad59c1..0baa78a 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -35,7 +35,7 @@
 
 var fs = require('fs');
 var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
 var grpc = require('..');
 var testProto = grpc.load(__dirname + '/test.proto').grpc.testing;
 var Server = grpc.buildServer([testProto.TestService.service]);
diff --git a/src/node/package.json b/src/node/package.json
index d7e9af0..3ea2c06 100644
--- a/src/node/package.json
+++ b/src/node/package.json
@@ -25,10 +25,9 @@
   },
   "dependencies": {
     "bindings": "^1.2.0",
+    "lodash": "^3.9.3",
     "nan": "^1.5.0",
-    "protobufjs": "dcodeIO/ProtoBuf.js",
-    "underscore": "^1.6.0",
-    "underscore.string": "^3.0.0"
+    "protobufjs": "dcodeIO/ProtoBuf.js"
   },
   "devDependencies": {
     "async": "^0.9.0",
diff --git a/src/node/src/client.js b/src/node/src/client.js
index 6533940..b7bad94 100644
--- a/src/node/src/client.js
+++ b/src/node/src/client.js
@@ -33,7 +33,7 @@
 
 'use strict';
 
-var _ = require('underscore');
+var _ = require('lodash');
 
 var grpc = require('bindings')('grpc.node');
 
diff --git a/src/node/src/common.js b/src/node/src/common.js
index 98917c0..7b54335 100644
--- a/src/node/src/common.js
+++ b/src/node/src/common.js
@@ -33,10 +33,7 @@
 
 'use strict';
 
-var _ = require('underscore');
-
-var capitalize = require('underscore.string/capitalize');
-var decapitalize = require('underscore.string/decapitalize');
+var _ = require('lodash');
 
 /**
  * Get a function that deserializes a specific type of protobuf.
@@ -81,7 +78,7 @@
   }
   var name = value.name;
   if (value.className === 'Service.RPCMethod') {
-    name = capitalize(name);
+    name = _.capitalize(name);
   }
   if (value.hasOwnProperty('parent')) {
     var parent_name = fullyQualifiedName(value.parent);
@@ -118,8 +115,8 @@
 function getProtobufServiceAttrs(service) {
   var prefix = '/' + fullyQualifiedName(service) + '/';
   return _.object(_.map(service.children, function(method) {
-    return [decapitalize(method.name), {
-      path: prefix + capitalize(method.name),
+    return [_.camelCase(method.name), {
+      path: prefix + _.capitalize(method.name),
       requestStream: method.requestStream,
       responseStream: method.responseStream,
       requestSerialize: serializeCls(method.resolvedRequestType.build()),
diff --git a/src/node/src/server.js b/src/node/src/server.js
index 079495a..c6cf9e7 100644
--- a/src/node/src/server.js
+++ b/src/node/src/server.js
@@ -33,7 +33,7 @@
 
 'use strict';
 
-var _ = require('underscore');
+var _ = require('lodash');
 
 var grpc = require('bindings')('grpc.node');
 
@@ -48,8 +48,6 @@
 
 var EventEmitter = require('events').EventEmitter;
 
-var common = require('./common.js');
-
 /**
  * Handle an error on a call by sending it as a status
  * @param {grpc.Call} call The call to send the error on
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index b390f8b..8d1f99a 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -45,9 +45,7 @@
 
 var mathService = math_proto.lookup('math.Math');
 
-var capitalize = require('underscore.string/capitalize');
-
-var _ = require('underscore');
+var _ = require('lodash');
 
 describe('File loader', function() {
   it('Should load a proto file by default', function() {
@@ -159,7 +157,7 @@
       server = new Server({
         string: {
           capitalize: function(call, callback) {
-            callback(null, capitalize(call.request));
+            callback(null, _.capitalize(call.request));
           }
         }
       });