I find it a bit confusing for us to have `firehose.js` and `ui/firehose.js`.  Since nothing else includes `ui/firehose.js`, does it need to be its own file?  Why not define it in here?