diff --git a/helpers/buildUrl.js b/helpers/buildUrl.js
index 076932d..1acdf5e 100644
--- a/helpers/buildUrl.js
+++ b/helpers/buildUrl.js
@@ -1,7 +1,6 @@
 'use strict'
 
 var urljoin = require('url-join'),
-    ok = require('objectkit'),
     config = require('./config')
 
 function buildUrl(options) {
diff --git a/lib/appAuth.js b/lib/appAuth.js
index f0b2516..f7fe813 100644
--- a/lib/appAuth.js
+++ b/lib/appAuth.js
@@ -2,10 +2,9 @@
 
 var UsergridAuth = require('./auth'),
     util = require('util'),
-    _ = require('underscore'),
-    ok = require('objectkit')
+    _ = require('underscore')
 
-var UsergridAppAuth = function(options) {
+var UsergridAppAuth = function() {
     var self = this
 
     var args = Array.prototype.slice.call(arguments)
diff --git a/lib/client.js b/lib/client.js
index 50ed7dd..c452a81 100644
--- a/lib/client.js
+++ b/lib/client.js
@@ -2,7 +2,6 @@
 
 var UsergridRequest = require('./request'),
     request = require('request'),
-    ok = require('objectkit'),
     config = require('../helpers/config'),
     helpers = require('../helpers'),
     UsergridAppAuth = require('./appAuth'),
@@ -42,7 +41,6 @@
             return __appAuth
         },
         set: function(options) {
-            var self = this
             if (options instanceof UsergridAppAuth) {
                 __appAuth = options
             } else {
diff --git a/tests/lib/response.test.js b/tests/lib/response.test.js
index 07ac7da..a91238f 100644
--- a/tests/lib/response.test.js
+++ b/tests/lib/response.test.js
@@ -63,12 +63,11 @@
     this.slow(1000)
     this.timeout(6000)
 
-    var user = new UsergridUser()
-
     it('response.users should be an array of UsergridUser objects', function(done) {
         client.setAppAuth(config.clientId, config.clientSecret, config.tokenTtl)
         client.authenticateApp(function(err) {
             client.GET('users', function(err, usergridResponse) {
+                should(err).be.undefined()
                 usergridResponse.statusCode.should.equal(200)
                 usergridResponse.users.should.be.an.Array()
                 usergridResponse.users.forEach(function(user) {
