use promises
use boom to surface errors