Part of me doesn't like that we're checking the type on each light twice (once in `findAllLights` and again here).  It seems like maybe we could combine the functions and put the light in its proper array when we first discover it, rather than doing that as a post-process.