Technically, this is a "deferred", not a "promise" (I've made similar mistakes elsewhere that I need to correct. So let's call this "deferred". The promise is what gets returned at the end.