broadcast works now, not threadsafe i think, but mostly working