         }
     }
     
+    /// The number of items in the `EventQueue`.
     var count: Int {
         return queue.count
     }
     
+    /// Initializes the `EventQueue` with an initial list of `Element`s.
     convenience init(initialEvents: [Element]) {
         self.init()
         queue = initialEvents

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

        return head
    }
    
    /// Gets the parent index for an item at `index` in the `queue` array.
    /// `index` must be greater than `0`.
    private func getParentIndex(index: Int) -> Int {
        assert(index > 0)
        return (index + 1) / 2 - 1
    }
    
    /// Gets the child indexes for an item at `index` in the `queue` array.
    /// - Returns: A 2-tuple with left (the index of the left child) and
    /// right (the index of the right child).
    private func getChildIndexes(index: Int) -> (left: Int, right: Int) {
        let left = (index + 1) * 2 - 1
        let right = (index + 1) * 2
        return (left, right)
    }
    
    /// Shifts the `Element` found at `index` in the `queue` array up the `Element` is misplaced.
    private func shiftUp(index: Int) {
        guard index > 0 else {
            return
