Ok, I made getSoundFilenames cache the results. list() could cache the objects too, but I doubt that's overly important.