Added a per-task broadcast channel

Also cleaned up unit tests