diff --git a/lib/core/traverse.js b/lib/core/traverse.js
index 379910ec781847cd02fc9f6f035c95bd558a5a3d..ee263e57516aca4dde6bc4ec78f65b79db6c021f 100644
Binary files a/lib/core/traverse.js and b/lib/core/traverse.js differ
diff --git a/ts/core/clean.ts b/ts/core/clean.ts
deleted file mode 100644
index 4e8e8acf620ffdf7dfae6c69e7f1d055ea4e10cb..0000000000000000000000000000000000000000
--- a/ts/core/clean.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-// TODO: tsify
-
-function isArray(obj) {
-  return obj && Array.isArray(obj);
-}
-
-function isObject(obj) {
-  return obj && obj !== null && typeof obj === 'object';
-}
-
-function hasNothing(obj) {
-  if (isArray(obj)) {
-    return obj.length === 0;
-  }
-
-  if (isObject(obj)) {
-    return Object.keys(obj).length === 0;
-  }
-
-  return typeof obj === 'undefined' || obj === null;
-}
-
-function removeProps(obj, key?, parent?) {
-  var i,
-      value,
-      isFullyEmpty = true;
-
-  if (isArray(obj)) {
-    for (i = 0; i < obj.length; ++i) {
-      value = obj[i];
-
-      if (isObject(value)) {
-        removeProps(value, i, obj);
-      }
-
-      if (hasNothing(value)) {
-        obj.splice(i--, 1);
-      } else {
-        isFullyEmpty = false;
-      }
-    }
-  } else {
-    for (i in obj) {
-      value = obj[i];
-
-      if (isObject(value)) {
-        removeProps(value, i, obj);
-      }
-
-      if (hasNothing(value)) {
-        delete obj[i];
-      } else {
-        isFullyEmpty = false;
-      }
-    }
-  }
-
-  if (typeof key !== 'undefined' && isFullyEmpty) {
-    delete parent[key];
-    removeProps(obj);
-  }
-}
-
-export = function(obj: any) {
-  removeProps(obj);
-  return obj;
-};
diff --git a/ts/core/traverse.ts b/ts/core/traverse.ts
index 4883f0f9496a2b01e4a64c62ab8230664843edc5..8ceb630badb785f9b4851f391a6c1e3107449867 100644
--- a/ts/core/traverse.ts
+++ b/ts/core/traverse.ts
@@ -1,4 +1,3 @@
-import clean = require('./clean');
 import random = require('./random');
 import ParseError = require('./error');
 import inferType = require('./infer');
@@ -92,7 +91,7 @@ function traverse(schema: JsonSchema, path: SchemaPath, resolve: Function) {
     }
   }
 
-  return clean(copy);
+  return copy;
 }
 
 export = traverse;