                 point.x + pointDiameter + lineWidth / 2 + 13,
                 y + pointDiameter / 2,
                 titleWidth,
-                titleHeight + gap)
+                titleHeight + ISTimeline.gap)
             
             var descriptionRect:CGRect?
             if descriptionLabel != nil {
                 descriptionRect = CGRectMake(
                     bubbleRect.origin.x,
                     bubbleRect.origin.y + bubbleRect.height + 3,
-                    self.bounds.width - (self.contentInset.left + self.contentInset.right) - pointDiameter - lineWidth - gap * 1.5,
+                    calcWidth(),
                     descriptionLabel!.intrinsicContentSize().height)
             }
             
             sections.append((point, bubbleRect, descriptionRect, titleLabel, descriptionLabel, points[i].pointColor.CGColor, points[i].lineColor.CGColor, points[i].fill))
             
             y += height
-            y += gap * 2.2 // section gap
+            y += ISTimeline.gap * 2.2 // section gap
         }
         self.setNeedsLayout()
         self.layoutIfNeeded()

        titleLabel.font = UIFont.boldSystemFontOfSize(12.0)
        titleLabel.lineBreakMode = .ByWordWrapping
        titleLabel.numberOfLines = 0
        titleLabel.preferredMaxLayoutWidth = self.bounds.width - (self.contentInset.left + self.contentInset.right) - pointDiameter - lineWidth - 15 * 1.5
        return titleLabel
    }
    

    }
    
    private func buildSections() {
        var y:CGFloat = self.bounds.origin.y + self.contentInset.top
        for i in 0 ..< points.count {
            let titleLabel = buildTitleLabel(i)
