         return false
     }
     
+    /**
+     *  # Contains (Time Period Protocol)
+     *  If the given `TimePeriod`'s beginning is after `self.beginning` and
+     *  if the given 'TimePeriod`'s after is after `self.end`.
+     *
+     *  @param period TimePeriodProtocol - The time period to compare to self
+     *
+     *  @return Bool - True if the given `TimePeriod` is inside of self
+     */
     func contains(_ period: TimePeriodProtocol) -> Bool {
         return self.beginning!.isEarlierThanOrEqual(to: period.beginning!) && self.end!.isLaterThanOrEqual(to: period.end!)
     }
     
+    /**
+     *  # Overlaps With (Time Period Protocol)
+     *  If self and the given `TimePeriod` share any sub-`TimePeriod`.
+     *
+     *  @param period TimePeriodProtocol - The time period to compare to self
+     *
+     *  @return Bool - True if there is a period of time that is shared by both `TimePeriod`s
+     */
     func overlaps(with period: TimePeriodProtocol) -> Bool {
         //Outside -> Inside
         if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.isLater(than: self.beginning!)) {

        return timePeriod
    }
    
    func shortened(by timeInterval: TimeInterval, at anchor: Anchor) -> TimePeriod {
        let timePeriod = TimePeriod()
        switch anchor {

        return Int.max
    }
    
    /**
     *  The duration of the `TimePeriod` in hours.
     *  Returns the max int if beginning or end are nil.
     */
    var hours: Int {
        if self.beginning != nil && self.end != nil {
            return self.beginning!.hoursEarlier(than: self.end!)
