                 height += descriptionLabel!.intrinsicContentSize().height
             }
             
-            let point = CGPointMake(self.bounds.origin.x + self.contentInset.left + lineWidth / 2, y + (titleHeight + gap) / 2)
-            
-            let maxTitleWidth = self.bounds.width - (self.contentInset.left + self.contentInset.right) - pointDiameter - lineWidth - gap * 1.5
+            let point = CGPointMake(self.bounds.origin.x + self.contentInset.left + lineWidth / 2, y + (titleHeight + ISTimeline.gap) / 2)
+            
+            let maxTitleWidth = calcWidth()
             var titleWidth = titleLabel.intrinsicContentSize().width + 20
             if (titleWidth > maxTitleWidth) {
                 titleWidth = maxTitleWidth

            descriptionLabel.font = UIFont.systemFontOfSize(10.0)
            descriptionLabel.lineBreakMode = .ByWordWrapping
            descriptionLabel.numberOfLines = 0
            descriptionLabel.preferredMaxLayoutWidth = self.bounds.width - (self.contentInset.left + self.contentInset.right) - pointDiameter - lineWidth - 15 * 1.5
            return descriptionLabel
        }
        return nil
    }
    
    private func drawLine(start:CGPoint, end:CGPoint, color:CGColor) {

                point.x + pointDiameter + lineWidth / 2 + 13,
                y + pointDiameter / 2,
                titleWidth,
                titleHeight + ISTimeline.gap)
            
            var descriptionRect:CGRect?
            if descriptionLabel != nil {
                descriptionRect = CGRectMake(
                    bubbleRect.origin.x,
                    bubbleRect.origin.y + bubbleRect.height + 3,
                    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 += ISTimeline.gap * 2.2 // section gap
        }
        self.setNeedsLayout()
        self.layoutIfNeeded()
