diff --git a/examples/client_chat/client_chat.js b/examples/client_chat/client_chat.js
index 34b6d16..3c5d66d 100644
--- a/examples/client_chat/client_chat.js
+++ b/examples/client_chat/client_chat.js
@@ -55,7 +55,7 @@ if(process.argv.length < 5) {
   process.exit(1);
 }
 
-process.argv.forEach(function(val, index, array) {
+process.argv.forEach(function(val) {
   if(val == "-h") {
     print_help();
     process.exit(0);
@@ -167,9 +167,9 @@ function parseChat(chatObj, parentState) {
 
       chat += color(util.format.apply(this, args), getColorize(parentState));
     }
-    for(var i in chatObj.extra) {
+    chatObj.extra.forEach(function(i) {
       chat += parseChat(chatObj.extra[i], parentState);
-    }
+    });
     return chat;
   }
 }
diff --git a/examples/proxy/proxy.js b/examples/proxy/proxy.js
index f7a5c18..a725432 100644
--- a/examples/proxy/proxy.js
+++ b/examples/proxy/proxy.js
@@ -26,7 +26,7 @@ if(process.argv.length < 4) {
   printHelpAndExit(1);
 }
 
-process.argv.forEach(function(val, index, array) {
+process.argv.forEach(function(val) {
   if(val == "-h") {
     printHelpAndExit(0);
   }
@@ -175,8 +175,8 @@ srv.on('login', function(client) {
 function shouldDump(name, direction) {
   if(matches(printNameBlacklist[name])) return false;
   if(printAllNames) return true;
-  if(matches(printNameWhitelist[name])) return true;
-  return false;
+  return matches(printNameWhitelist[name]);
+
   function matches(result) {
     return result != null && result.indexOf(direction) !== -1;
   }
diff --git a/examples/server/server.js b/examples/server/server.js
index d97bc61..378a7f2 100644
--- a/examples/server/server.js
+++ b/examples/server/server.js
@@ -1,11 +1,10 @@
 var mc = require('minecraft-protocol');
-var states = mc.states;
 
 var options = {
   motd: 'Vox Industries',
   'max-players': 127,
   port: 25565,
-  'online-mode': false,
+  'online-mode': false
 };
 
 var server = mc.createServer(options);
diff --git a/examples/server_helloworld/server_helloworld.js b/examples/server_helloworld/server_helloworld.js
index bc14afb..4f9f8af 100644
--- a/examples/server_helloworld/server_helloworld.js
+++ b/examples/server_helloworld/server_helloworld.js
@@ -1,7 +1,7 @@
 var mc = require('minecraft-protocol');
 
 var options = {
-  'online-mode': true,
+  'online-mode': true
 };
 
 var server = mc.createServer(options);
diff --git a/src/createClient.js b/src/createClient.js
index 9400938..8867249 100644
--- a/src/createClient.js
+++ b/src/createClient.js
@@ -86,6 +86,7 @@ function createClient(options) {
     client.connect(port, host);
   }
 
+  var timeout = null;
   return client;
 
   function onConnect() {
@@ -104,7 +105,6 @@ function createClient(options) {
   function onCompressionRequest(packet) {
     client.compressionThreshold = packet.threshold;
   }
-  var timeout = null;
   function onKeepAlive(packet) {
     if (timeout)
       clearTimeout(timeout);
@@ -153,7 +153,7 @@ function createClient(options) {
         var encryptedVerifyTokenBuffer = pubKey.encrypt(packet.verifyToken, undefined, undefined, ursa.RSA_PKCS1_PADDING);
         client.write('encryption_begin', {
           sharedSecret: encryptedSharedSecretBuffer,
-          verifyToken: encryptedVerifyTokenBuffer,
+          verifyToken: encryptedVerifyTokenBuffer
         });
         client.setEncryption(sharedSecret);
       }
diff --git a/src/createServer.js b/src/createServer.js
index 543300a..9cc7092 100644
--- a/src/createServer.js
+++ b/src/createServer.js
@@ -70,7 +70,7 @@ function createServer(options) {
       });
     }
 
-    function onKeepAlive(packet) {
+    function onKeepAlive() {
       lastKeepAlive = new Date();
     }
 
@@ -86,7 +86,7 @@ function createServer(options) {
       clearTimeout(loginKickTimer);
     }
 
-    function onPing(packet) {
+    function onPing() {
       var response = {
         "version": {
           "name": version.minecraftVersion,
diff --git a/src/datatypes/minecraft.js b/src/datatypes/minecraft.js
index b17cbc2..2b89b46 100644
--- a/src/datatypes/minecraft.js
+++ b/src/datatypes/minecraft.js
@@ -1,8 +1,6 @@
 var nbt = require('prismarine-nbt');
-var types=require("protodef").types;
 var uuid = require('node-uuid');
 
-// TODO : remove type-specific, replace with generic containers and arrays.
 module.exports = {
   'UUID': [readUUID, writeUUID, 16],
   'nbt': [readNbt, writeNbt, sizeOfNbt],
@@ -14,7 +12,7 @@ module.exports = {
 function readUUID(buffer, offset) {
   return {
     value: uuid.unparse(buffer, offset),
-    size: 16,
+    size: 16
   };
 }
 
@@ -71,37 +69,37 @@ function sizeOfRestBuffer(value) {
   return value.length;
 }
 
-function readEntityMetadata(buffer, offset, typeArgs) {
+function readEntityMetadata(buffer, offset, {type,endVal}) {
   var cursor = offset;
   var metadata = [];
   var item;
   while(true) {
     item = buffer.readUInt8(cursor);
-    if(item === typeArgs.endVal) {
+    if(item === endVal) {
       return {
         value: metadata,
         size: cursor + 1 - offset
       };
     }
-    var results = this.read(buffer, cursor, typeArgs.type, {});
+    var results = this.read(buffer, cursor, type, {});
     metadata.push(results.value);
     cursor += results.size;
   }
 }
 
-function writeEntityMetadata(value, buffer, offset, typeArgs) {
+function writeEntityMetadata(value, buffer, offset, {type,endVal}) {
   var self = this;
   value.forEach(function(item) {
-    offset = self.write(item, buffer, offset, typeArgs.type, {});
+    offset = self.write(item, buffer, offset, type, {});
   });
-  buffer.writeUInt8(typeArgs.endVal, offset);
+  buffer.writeUInt8(endVal, offset);
   return offset + 1;
 }
 
-function sizeOfEntityMetadata(value, typeArgs) {
+function sizeOfEntityMetadata(value, {type}) {
   var size = 1;
   for(var i = 0; i < value.length; ++i) {
-    size += this.sizeOf(value[i], typeArgs.type, {});
+    size += this.sizeOf(value[i], type, {});
   }
   return size;
 }
diff --git a/src/debug.js b/src/debug.js
index 538050e..6b8e326 100644
--- a/src/debug.js
+++ b/src/debug.js
@@ -1,4 +1,4 @@
-var util = require('util')
+var util = require('util');
 
 var debug;
 if(process.env.NODE_DEBUG && /(minecraft-protocol|mc-proto)/.test(process.env.NODE_DEBUG)) {
diff --git a/src/transforms/compression.js b/src/transforms/compression.js
index 44f3f90..17e89b3 100644
--- a/src/transforms/compression.js
+++ b/src/transforms/compression.js
@@ -4,11 +4,11 @@ var Transform = require("readable-stream").Transform;
 
 module.exports.createCompressor = function(threshold) {
   return new Compressor(threshold);
-}
+};
 
 module.exports.createDecompressor = function(threshold) {
   return new Decompressor(threshold);
-}
+};
 
 class Compressor extends Transform {
   constructor(compressionThreshold = -1) {
@@ -47,8 +47,7 @@ class Decompressor extends Transform {
   }
 
   _transform(chunk, enc, cb) {
-    var size, value, error;
-    ({ size, value, error } = readVarInt(chunk, 0));
+    var { size, value, error } = readVarInt(chunk, 0);
     if (error)
       return cb(error);
     if (value === 0)
diff --git a/src/transforms/framing.js b/src/transforms/framing.js
index 0a13e6d..a4fb0f7 100644
--- a/src/transforms/framing.js
+++ b/src/transforms/framing.js
@@ -3,11 +3,11 @@ var Transform = require("readable-stream").Transform;
 
 module.exports.createSplitter = function() {
   return new Splitter();
-}
+};
 
 module.exports.createFramer = function() {
   return new Framer();
-}
+};
 
 class Framer extends Transform {
   constructor() {
@@ -30,10 +30,9 @@ class Splitter extends Transform {
   }
   _transform(chunk, enc, cb) {
     this.buffer = Buffer.concat([this.buffer, chunk]);
-    var value, size, error;
     var offset = 0;
 
-    ({ value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" });
+    var { value, size, error } = readVarInt(this.buffer, offset) || { error: "Not enough data" };
     while (!error && this.buffer.length >= offset + size + value)
     {
       this.push(this.buffer.slice(offset + size, offset + size + value));
diff --git a/test/benchmark.js b/test/benchmark.js
index c1454d2..6104e33 100644
--- a/test/benchmark.js
+++ b/test/benchmark.js
@@ -7,7 +7,7 @@ var states = mc.states;
 var testDataWrite = [
   {name: 'keep_alive', params: {keepAliveId: 957759560}},
   {name: 'chat', params: {message: '<Bob> Hello World!'}},
-  {name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}},
+  {name: 'position_look', params: {x: 6.5, y: 65.62, stance: 67.24, z: 7.5, yaw: 0, pitch: 0, onGround: true}}
   // TODO: add more packets for better quality data
 ];
 
@@ -36,7 +36,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
       var deserializer=new mc.createDeserializer({state:states.PLAY,isServer:true,version:version.majorVersion});
       console.log('Beginning read test');
       start = Date.now();
-      for (j = 0; j < inputData.length; j++) {
+      for (var j = 0; j < inputData.length; j++) {
         deserializer.parsePacketBuffer(inputData[j]);
       }
       console.log('Finished read test in ' + (Date.now() - start) / 1000 + ' seconds');
diff --git a/test/clientTest.js b/test/clientTest.js
index 682c9ac..047cd96 100644
--- a/test/clientTest.js
+++ b/test/clientTest.js
@@ -43,7 +43,7 @@ mc.supportedVersions.forEach(function(supportedVersion) {
       });
       wrap.startServer({
         motd: 'test1234',
-        'max-players': 120,
+        'max-players': 120
       }, function(err) {
         if(err)
           return done(err);
diff --git a/test/packetTest.js b/test/packetTest.js
index 08cf3b0..4cfdadf 100644
--- a/test/packetTest.js
+++ b/test/packetTest.js
@@ -41,9 +41,9 @@ var values = {
     var results = {
       "..": context
     };
-    for(var index in typeArgs) {
+    Object.keys(typeArgs).forEach(function(index){
       results[typeArgs[index].name] = getValue(typeArgs[index].type, results);
-    }
+    });
     delete context[".."];
     return results;
   },
@@ -100,7 +100,7 @@ var values = {
     intField: 9,
     velocityX: 1,
     velocityY: 2,
-    velocityZ: 3,
+    velocityZ: 3
   },
   'UUID': "00112233-4455-6677-8899-aabbccddeeff",
   'position': {x: 12, y: 332, z: 4382821},
@@ -155,7 +155,7 @@ mc.supportedVersions.forEach(function(supportedVersion){
       client.end();
     });
     var packetName, packetInfo, field;
-    for(state in packets) {
+    for(var state in packets) {
       if(!packets.hasOwnProperty(state)) continue;
       for(packetName in packets[state].toServer) {
         if(!packets[state].toServer.hasOwnProperty(packetName)) continue;
@@ -210,14 +210,13 @@ mc.supportedVersions.forEach(function(supportedVersion){
       packetInfo.forEach(function(field) {
         assert.deepEqual(p1[field], p2[field]);
       });
-      var field;
-      for(field in p1) {
+      Object.keys(p1).forEach(function(field){
         if (p1[field] !== undefined)
           assert.ok(field in p2, "field " + field + " missing in p2, in p1 it has value " + JSON.stringify(p1[field]));
-      }
-      for(field in p2) {
+      });
+      Object.keys(p2).forEach(function(field){
         assert.ok(field in p1, "field " + field + " missing in p1, in p2 it has value " + JSON.stringify(p2[field]));
-      }
+      });
     }
   });
 
diff --git a/test/serverTest.js b/test/serverTest.js
index e18c563..b1b2083 100644
--- a/test/serverTest.js
+++ b/test/serverTest.js
@@ -1,5 +1,4 @@
 var mc = require('../');
-var Client = mc.Client;
 var assert = require('power-assert');
 
 mc.supportedVersions.forEach(function(supportedVersion){
@@ -271,4 +270,4 @@ mc.supportedVersions.forEach(function(supportedVersion){
       }
     });
   });
-})
+});