This seems fine, but when we build Broadcast objects, maybe we should build them directly onto the base array?  Or maybe that's too tricky to worry about.