Refactor the Broadcaster so unit test are easier to write. No functional changes