diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 02f341113d39eb9d2f001e04cac86c295cb05927..2b51bcae6a31fc350dffb6d112cbbd6c0fd426f6 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -86,7 +86,7 @@ function emptyUnary(client, done) {
  */
 function largeUnary(client, done) {
   var arg = {
-    response_type: testProto.PayloadType.COMPRESSABLE,
+    response_type: 'COMPRESSABLE',
     response_size: 314159,
     payload: {
       body: zeroBuffer(271828)
@@ -94,9 +94,8 @@ function largeUnary(client, done) {
   };
   var call = client.unaryCall(arg, function(err, resp) {
     assert.ifError(err);
-    assert.strictEqual(resp.payload.type, testProto.PayloadType.COMPRESSABLE);
-    assert.strictEqual(resp.payload.body.limit - resp.payload.body.offset,
-                       314159);
+    assert.strictEqual(resp.payload.type, 'COMPRESSABLE');
+    assert.strictEqual(resp.payload.body.length, 314159);
   });
   call.on('status', function(status) {
     assert.strictEqual(status.code, grpc.status.OK);
@@ -138,7 +137,7 @@ function clientStreaming(client, done) {
  */
 function serverStreaming(client, done) {
   var arg = {
-    response_type: testProto.PayloadType.COMPRESSABLE,
+    response_type: 'COMPRESSABLE',
     response_parameters: [
       {size: 31415},
       {size: 9},
@@ -150,8 +149,8 @@ function serverStreaming(client, done) {
   var resp_index = 0;
   call.on('data', function(value) {
     assert(resp_index < 4);
-    assert.strictEqual(value.payload.type, testProto.PayloadType.COMPRESSABLE);
-    assert.strictEqual(value.payload.body.limit - value.payload.body.offset,
+    assert.strictEqual(value.payload.type, 'COMPRESSABLE');
+    assert.strictEqual(value.payload.body.length,
                        arg.response_parameters[resp_index].size);
     resp_index += 1;
   });
@@ -182,23 +181,21 @@ function pingPong(client, done) {
   });
   var index = 0;
   call.write({
-      response_type: testProto.PayloadType.COMPRESSABLE,
+      response_type: 'COMPRESSABLE',
       response_parameters: [
         {size: response_sizes[index]}
       ],
       payload: {body: zeroBuffer(payload_sizes[index])}
   });
   call.on('data', function(response) {
-    assert.strictEqual(response.payload.type,
-                       testProto.PayloadType.COMPRESSABLE);
-    assert.equal(response.payload.body.limit - response.payload.body.offset,
-                 response_sizes[index]);
+    assert.strictEqual(response.payload.type, 'COMPRESSABLE');
+    assert.equal(response.payload.body.length, response_sizes[index]);
     index += 1;
     if (index === 4) {
       call.end();
     } else {
       call.write({
-        response_type: testProto.PayloadType.COMPRESSABLE,
+        response_type: 'COMPRESSABLE',
         response_parameters: [
           {size: response_sizes[index]}
         ],
@@ -251,7 +248,7 @@ function cancelAfterBegin(client, done) {
 function cancelAfterFirstResponse(client, done) {
   var call = client.fullDuplexCall();
   call.write({
-      response_type: testProto.PayloadType.COMPRESSABLE,
+      response_type: 'COMPRESSABLE',
       response_parameters: [
         {size: 31415}
       ],
@@ -281,7 +278,7 @@ function authTest(expected_user, client, done) {
     }
     client.updateMetadata = grpc.getGoogleAuthDelegate(credential);
     var arg = {
-      response_type: testProto.PayloadType.COMPRESSABLE,
+      response_type: 'COMPRESSABLE',
       response_size: 314159,
       payload: {
         body: zeroBuffer(271828)
@@ -291,9 +288,8 @@ function authTest(expected_user, client, done) {
     };
     var call = client.unaryCall(arg, function(err, resp) {
       assert.ifError(err);
-      assert.strictEqual(resp.payload.type, testProto.PayloadType.COMPRESSABLE);
-      assert.strictEqual(resp.payload.body.limit - resp.payload.body.offset,
-                         314159);
+      assert.strictEqual(resp.payload.type, 'COMPRESSABLE');
+      assert.strictEqual(resp.payload.body.length, 314159);
       assert.strictEqual(resp.username, expected_user);
       assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE);
     });
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index 8e5c03666fa3b7ddcfb02ae9bd77a9856af52351..dad59c1347769386026c1d322db2545703de9e61 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -72,10 +72,9 @@ function handleUnary(call, callback) {
   var req = call.request;
   var zeros = zeroBuffer(req.response_size);
   var payload_type = req.response_type;
-  if (payload_type === testProto.PayloadType.RANDOM) {
-    payload_type = [
-      testProto.PayloadType.COMPRESSABLE,
-      testProto.PayloadType.UNCOMPRESSABLE][Math.random() < 0.5 ? 0 : 1];
+  if (payload_type === 'RANDOM') {
+    payload_type = ['COMPRESSABLE',
+                    'UNCOMPRESSABLE'][Math.random() < 0.5 ? 0 : 1];
   }
   callback(null, {payload: {type: payload_type, body: zeros}});
 }
@@ -89,7 +88,7 @@ function handleUnary(call, callback) {
 function handleStreamingInput(call, callback) {
   var aggregate_size = 0;
   call.on('data', function(value) {
-    aggregate_size += value.payload.body.limit - value.payload.body.offset;
+    aggregate_size += value.payload.body.length;
   });
   call.on('end', function() {
     callback(null, {aggregated_payload_size: aggregate_size});
@@ -103,10 +102,9 @@ function handleStreamingInput(call, callback) {
 function handleStreamingOutput(call) {
   var req = call.request;
   var payload_type = req.response_type;
-  if (payload_type === testProto.PayloadType.RANDOM) {
-    payload_type = [
-      testProto.PayloadType.COMPRESSABLE,
-      testProto.PayloadType.UNCOMPRESSABLE][Math.random() < 0.5 ? 0 : 1];
+  if (payload_type === 'RANDOM') {
+    payload_type = ['COMPRESSABLE',
+                    'UNCOMPRESSABLE'][Math.random() < 0.5 ? 0 : 1];
   }
   _.each(req.response_parameters, function(resp_param) {
     call.write({
@@ -127,10 +125,9 @@ function handleStreamingOutput(call) {
 function handleFullDuplex(call) {
   call.on('data', function(value) {
     var payload_type = value.response_type;
-    if (payload_type === testProto.PayloadType.RANDOM) {
-      payload_type = [
-        testProto.PayloadType.COMPRESSABLE,
-        testProto.PayloadType.UNCOMPRESSABLE][Math.random() < 0.5 ? 0 : 1];
+    if (payload_type === 'RANDOM') {
+      payload_type = ['COMPRESSABLE',
+                      'UNCOMPRESSABLE'][Math.random() < 0.5 ? 0 : 1];
     }
     _.each(value.response_parameters, function(resp_param) {
       call.write({