     return null
 
   del: (key) ->
-    return @ if !key?
+    return this if !key?
     codepoints = toCodePoints key
     node = @find_ @root_, codepoints
     @delete_ node
-    return @
+    return this
 
   delete_: (node) ->
     return if !node?

    return if !root?
    callback prefix, root if root.v?
    @traverse_ root.m, (key, node) -> callback prefix + key, node.v
    return @

  keysWithCommonPrefix: (key) ->
    items = []

      return if a.length != b.length
      callback key, node.v if calcHammingDistance(a, b) <= distance
      return
    return this

  searchWithinLevenshteinDistance: (query, distance, callback) ->
    a = toCodePoints query
