         }
     }
     
+    /// Inserts an `Element` into the `EventQueue` with the provided `event`, `playerNumber`,
+    /// `timeStep` and any `otherData`.
     func insert(event: GameEvent, playerNumber: Int, timeStep: Int, otherData: AnyObject?) {
         queue.append((event, playerNumber, timeStep, otherData))
         shiftUp(count - 1)
     }
     
+    /// Removes the `head` from the `EventQueue`.
+    /// - Returns: The `Element` that was at the head of the queue.
+    /// If the queue is empty, returns `nil`.
     func removeHead() -> Element? {
         guard count > 0 else {
             return nil

        }
    }
    
    private func shiftDown(index: Int) {
        let childIndexes = getChildIndexes(index)
        let currentVal = queue[index].timeStep

        shiftDown(indexToSwap)
    }
    
    /// Swaps `indexA` and `indexB` in the `queue` array.
    private func swap(indexA a: Int, indexB b: Int) {
        let aData = queue[a]
        queue[a] = queue[b]
