     var font : UIFont
   }
   
- 
   fileprivate func getTextRectFontsAndCollisionInfo() -> ([TextRectFont], Bool, Bool) {
     var collision : Bool = false
     var endCollision : Bool = false
     var rectFonts : [TextRectFont] = []
     
-    let ballRects = slider.ballRects
     let count = ballRects.count
     
-    let sliderBottom = slider.frame.origin.y + slider.frame.height
+    let sliderBottom = selectorSize.height + (Constants.vertPad * 2)
     
     for i in 0..<count {
       let ballRect = ballRects[i]
       let text = values[i]
       let nsText = NSString(string: text)
       
-      let bold = i == value
-      guard let font = getAdaptiveFont(bold: bold) else {
+      let bold = i == discreteValue
+      guard let font = getFont(bold: bold) else {
         continue
       }
       
       let textSize = nsText.size(attributes: [NSFontAttributeName : font])
       
-      var x : CGFloat = ballRect.center.x - textSize.width / 2
+      var x : CGFloat = ballRect.midX - textSize.width / 2
       if i == 0 {
         x = 0
       } else if i == ballRects.count - 1 {

        nsText.draw(in: trf.rect, withAttributes: [NSFontAttributeName : trf.font])
      }
    }
  }
  
  fileprivate func paintText(text : String, textRectFont trf : TextRectFont, font: UIFont? = nil) {

    if collision {
      assert(values.count > 1, "Logic Error - can't have collection with less than two values")
      
      guard let boldFont = getFont(bold: true) else {
        return
      }
      paintText(text: values[0], textRectFont: textRectFonts[0])
      let last = values.count - 1
      
      if discreteValue == last {
        paintText(text: values[last], textRectFont: textRectFonts[last],
          font: boldFont)
      } else {
        if false == endCollision {
          paintText(text: values[discreteValue],
            textRectFont: textRectFonts[discreteValue], font: boldFont)
        }
        paintText(text: values[last], textRectFont: textRectFonts[last])
      }
