This chaining of `.then`s looks like voodoo to me. I assume each return statement is really returning a new promise, and each `.then` is just defining the promise equivalent of a callback for that promise?