 // MARK: - CalendarHeaderView
 // MARK: Interface
 extension CalendarHeaderView {
+    // Readonly
+    var titleFrame: CGRect {
+        return self._titleFrame
+    }
+    
+    // ReadWrite
     var delegate: CalendarHeaderViewDelegate? {
         get {
             return self._delegate

        let width: CGFloat = self.width
        let height: CGFloat = self.height
        
        let buttonSideLength: CGFloat = 0.6 * height
        let dayNamesHeight: CGFloat = height - buttonSideLength
        
        let buttonSize: CGSize = CGSize(width: buttonSideLength, height: buttonSideLength)
        let dayNamesViewFrame: CGRect = CGRect(x: 0, y: buttonSideLength, width: width, height: dayNamesHeight)
        
        let buttonSideLengthRatio: CGFloat = buttonSideLength / width
        let gradientRatio: CGFloat = 0.05 // ???: Should this be moved into the class declaration?
        let buttonSideLengthPlusGradientRatio: CGFloat = buttonSideLengthRatio + gradientRatio
        let backgroundLayer: CAGradientLayer = self._backgroundLayer
        backgroundLayer.locations = [

        super.init(frame: frame)
        self._addSubviews()
    }
    
    // Private Constants
    fileprivate let _buttonHeightRatio: CGFloat = 0.6
    fileprivate let _gradientWidthRatio: CGFloat = 0.05
    
    // Private Weak Variables
    fileprivate weak var _delegate: CalendarHeaderViewDelegate?
