As mentioned, `getSoundFilenames` caches stuff now.

You're correct on how Promises work. You can also throw inside a `then()` to do the same thing as `reject()`.