     if typeof options is 'function'
       callback = options
       options = null
+    throw new Error 'Missing callback' unless callback
     @self.get key, options, callback or noop
     @
 

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

  batch: ->
    new Batch @self


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

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

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