_device.open() needs callbacks

- in call(), errors are passed through the errback param, should include some
  promise micro-library in the future