   if typeof options is 'function'
     callback = options
     options = null
-  callback ?= noop
+  throw new Error 'Missing callback' unless callback
   binding.open path, options, (err, self) ->
     return callback err if err
     callback null, new Handle self

    if typeof options is 'function'
      callback = options
      options = null
    @self.get key, options, callback or noop
    @


  batch: ->
    new Batch @self


  iterator: ->
    new Iterator @self.iterator()

  snapshot: ->
    new Snapshot @, @self.snapshot()

  property: (name) ->
    @self.property(name)
