 
 class MulticastTests: XCTestCase {
 
-    func testAddingDelegates() {
+    func testBroadcastShouldBroadcastToAllDelegates() {
+        var messageRecipients = [String]()
+        let subscriberA = Subscriber { message in
+            if message == "We are wonderful" {
+                messageRecipients.append("A")
+            }
+        }
+        let subscriberB = Subscriber { message in
+            if message == "We are wonderful" {
+                messageRecipients.append("B")
+            }
+        }
+        let subscriberC = Subscriber { message in
+            if message == "We are wonderful" {
+                messageRecipients.append("C")
+            }
+        }
+
+        let broadcaster = Broadcaster()
+        broadcaster.add(delegate: subscriberA)
+        broadcaster.add(delegate: subscriberB)
+        broadcaster.add(delegate: subscriberC)
+        broadcaster.broadcast(that: "We are wonderful")
+
+        XCTAssert(messageRecipients.ip_contains(all: ["A", "B", "C"]), "Message not broadcasted to all recipients.")
+        XCTAssert(messageRecipients.count == 3, "Message was broadcasted to too many recipients.")
+    }
+
+    func testAddingSameDelegateShouldNotReadd() {
         var messageRecipients = [String]()
         let subscriberA = Subscriber { message in
             if message == "We are intrepid" {

        broadcaster.add(delegate: subscriberC)
        broadcaster.add(delegate: subscriberA)
        broadcaster.broadcast(that: "We are intrepid") // get it?
        if !messageRecipients.ip_contains(all: ["A", "B", "C"]) || messageRecipients.count != 3 {
            XCTFail("Intended recipients are A, B, and C. Actual recipients: \(messageRecipients)")
        }
    }

    func testRemovingOneDelegate() {

        broadcaster.add(delegate: subscriberC)
        broadcaster.remove(delegate: subscriberB)
        broadcaster.broadcast(that: "We are beautiful")

        XCTAssert(messageRecipients.ip_contains(all: ["A", "C"]), "Message not broadcasted to all recipients.")
        XCTAssert(messageRecipients.count == 2, "Message was broadcasted to too many recipients.")
    }

    func testRemovingMultipleDelegates() {
