diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000000000000000000000000000000000000..9aa0052b8fb8b61ff0b7aa2fb15ac24a2d81a815
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,31 @@
+{
+	"asi" : false,
+	"bitwise" : true,
+	"boss" : false,
+	"browser" : true,
+	"curly" : true,
+	"debug": false,
+	"devel": false,
+	"eqeqeq": true,
+	"evil": false,
+	"expr": true,
+	"forin": false,
+	"immed": true,
+	"latedef" : false,
+	"laxbreak": false,
+	"multistr": true,
+	"newcap": true,
+	"noarg": true,
+	"noempty": false,
+	"nonew": true,
+	"onevar": false,
+	"plusplus": false,
+	"regexp": false,
+	"strict": false,
+	"globalstrict": true,
+	"sub": false,
+	"trailing" : true,
+	"undef": true,
+	"unused": "vars",
+	"node": true
+}
\ No newline at end of file
diff --git a/game.js b/game.js
index aad08201311c2616896759c46198d4e7acf84f0b..8d7ebda64ab1c57276a8e23e0d230a0a29e7a4b0 100644
--- a/game.js
+++ b/game.js
@@ -9,7 +9,9 @@ function getDeck() {
 
 function removeFromArray(array, item) {
   var index = array.indexOf(item);
-  if(index != -1) array.splice(index, 1);
+  if(index !== -1) {
+    array.splice(index, 1);
+  }
 }
 
 function list() {
@@ -25,7 +27,7 @@ function listAll() {
 function toInfo(fullGameList) {
   return _.map(fullGameList, function(game) {
     return { id: game.id, name: game.name, players: game.players.length };
-  }); 
+  });
 }
 
 function addGame(game) {
@@ -45,7 +47,7 @@ function addGame(game) {
 }
 
 function getGame(gameId) {
-  return _.find(gameList, function(x) { return x.id == gameId; });
+  return _.find(gameList, function(x) { return x.id === gameId; });
 }
 
 function joinGame(game, player) {
@@ -58,7 +60,7 @@ function joinGame(game, player) {
     isCzar: false
   });
 
-  if(game.players.length == 4) {
+  if(game.players.length === 4) {
     startGame(game);
   }
 
@@ -95,22 +97,22 @@ function roundEnded(game) {
     player.selectedWhiteCardId = null;
   });
 
-  if(game.players[0].isCzar == true) {
+  if(game.players[0].isCzar === true) {
     game.players[0].isCzar = false;
     game.players[1].isCzar = true;
     game.players[1].isReady = false;
   }
-  else if(game.players[1].isCzar == true) {
+  else if(game.players[1].isCzar === true) {
     game.players[1].isCzar = false;
     game.players[2].isCzar = true;
     game.players[2].isReady = false;
   }
-  else if(game.players[2].isCzar == true) {
+  else if(game.players[2].isCzar === true) {
     game.players[2].isCzar = false;
     game.players[3].isCzar = true;
     game.players[3].isReady = false;
   }
-  else if(game.players[3].isCzar == true) {
+  else if(game.players[3].isCzar === true) {
     game.players[3].isCzar = false;
     game.players[0].isCzar = true;
     game.players[0].isReady = false;
@@ -131,7 +133,7 @@ function setCurrentBlackCard(game) {
 
 function getPlayer(gameId, playerId) {
   var game = getGame(gameId);
-  return _.find(game.players, function(x) { return x.id == playerId; });
+  return _.find(game.players, function(x) { return x.id === playerId; });
 }
 
 function getPlayerByCardId(gameId, cardId) {
@@ -148,7 +150,9 @@ function readyForNextRound(gameId, playerId) {
     return x.isReady;
   });
 
-  if(allReady) roundEnded(game);
+  if(allReady) {
+    roundEnded(game);
+  }
 }
 
 function selectCard(gameId, playerId, whiteCardId) {
@@ -162,7 +166,9 @@ function selectCard(gameId, playerId, whiteCardId) {
     return x.selectedWhiteCardId;
   });
 
-  if(readyPlayers.length == 3) game.isReadyForScoring = true;
+  if(readyPlayers.length === 3) {
+    game.isReadyForScoring = true;
+  }
 }
 
 function selectWinner(gameId, cardId) {
@@ -172,8 +178,8 @@ function selectWinner(gameId, cardId) {
   game.isReadyForReview = true;
   player.awesomePoints = player.awesomePoints + 1;
   game.history.push({ black: game.currentBlackCard, white: cardId, winner: player.name });
-  if(player.awesomePoints == game.pointsToWin) {
-    var game = getGame(gameId);
+  if(player.awesomePoints === game.pointsToWin) {
+    game = getGame(gameId);
     game.isOver = true;
     game.winnerId = player.id;
   }
diff --git a/server.js b/server.js
index 5233444b4970eb98db4b0eb2ee4102d81741bfac..baec212b430b1af88c16e317149566788a33bd7e 100644
--- a/server.js
+++ b/server.js
@@ -1,17 +1,16 @@
 var express = require('express');
-var app = express()
+var app = express();
 var server = require('http').createServer(app);
-var Game = require('./game.js')
+var Game = require('./game.js');
 var players = { };
 var io = require('socket.io').listen(server);
-var _ = require('underscore');
 
 server.listen(process.env.PORT || 3000);
 
 app.set('view engine', 'ejs');
 app.set('view options', { layout: false });
 app.use(express.methodOverride());
-app.use(express.bodyParser());  
+app.use(express.bodyParser());
 app.use(app.router);
 app.use('/public', express.static('public'));
 
@@ -38,7 +37,10 @@ function gameViewModel(gameId) {
 
 io.sockets.on('connection', function(socket) {
   socket.on('connectToGame', function(data) {
-    if(!players[data.gameId]) players[data.gameId] = { };
+    if(!players[data.gameId]) {
+      players[data.gameId] = { };
+    }
+
     socket.gameId = data.gameId;
     socket.playerId = data.playerId;
     players[data.gameId][data.playerId] = socket;
@@ -65,8 +67,8 @@ app.post('/joingame', function (req, res) {
     res.write(JSON.stringify({ error: "too many players" }));
     res.end();
     return null;
-  }	
-  
+  }
+
   game = Game.joinGame(game, { id: req.body.playerId, name: req.body.playerName });
   returnGame(req.body.gameId, res);
 });
diff --git a/spec.js b/spec.js
index 0d84489782e6ea6b71e314450e135d2727bae64f..67f63182746fd64de4770f9707822f65fbebe1ef 100644
--- a/spec.js
+++ b/spec.js
@@ -1,5 +1,4 @@
 var jasmine = require('jasmine-node');
-var sys = require('sys');
 
 for(var key in jasmine) {
   global[key] = jasmine[key];