Use bluebird, implement locking to prevent undesired undefering