Use Bluebird to do promises because it allows binding.