         UIGraphicsBeginImageContextWithOptions(size, true, 0)
         UIColor.blackColor().setFill()
         UIRectFill(CGRectMake(0, 0, size.width, size.height))
-        drawBarsIfNumbers()
-        drawIndices(UIColor.whiteColor())
-        drawObjectDescriptions(CGFloat(0.2), textColor: UIColor.greenColor())
+        let indexObjectDividerX : CGFloat = 40
+        let indexObjectDividerMarginX : CGFloat = 5
+        let objectGraphDividerX : CGFloat = 70
+        drawLines(UIColor.grayColor())
+        drawLine(UIColor.grayColor(), x0: indexObjectDividerX - indexObjectDividerMarginX, y0: 0,
+                                      x1: indexObjectDividerX - indexObjectDividerMarginX, y1: size.height)
+        drawLine(UIColor.grayColor(), x0: objectGraphDividerX, y0: 0, x1: objectGraphDividerX, y1: size.height)
+        drawBarsIfNumbers(objectGraphDividerX)
+        drawIndices(UIColor.whiteColor(), xPos:5)
+        drawObjectDescriptions(CGFloat(indexObjectDividerX), textColor: UIColor.greenColor())
         let image = UIGraphicsGetImageFromCurrentImageContext()
         UIGraphicsEndImageContext()
         return image
     }
     
-    private func drawIndices(textColor:UIColor) {
+    private func drawIndices(textColor:UIColor, xPos:CGFloat) {
         let paragraphStyle = NSParagraphStyle.defaultParagraphStyle().mutableCopy() as! NSMutableParagraphStyle
         paragraphStyle.lineBreakMode = NSLineBreakMode.ByTruncatingTail
-        let textFontAttributes = [NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(itemHeight)), NSForegroundColorAttributeName: textColor, NSParagraphStyleAttributeName: paragraphStyle]
+        let textFontAttributes = [NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(itemHeight-2)), NSForegroundColorAttributeName: textColor, NSParagraphStyleAttributeName: paragraphStyle]
         for i in 0..<self.count() {
             let y = i * itemHeight
             let string : NSString? = self.storage.objectAtIndex(i).description
             if string != nil {
                 let indexString = String(i)
-                indexString.drawAtPoint(CGPointMake(10, CGFloat(y)), withAttributes: textFontAttributes)
-            }
-        }
-    }
-
-    private func drawObjectDescriptions(xPercentage:CGFloat, textColor:UIColor) {
+                indexString.drawAtPoint(CGPointMake(xPos, CGFloat(y)), withAttributes: textFontAttributes)
+            }
+        }
+    }
+
+    private func drawObjectDescriptions(xPos:CGFloat, textColor:UIColor) {
         let paragraphStyle = NSParagraphStyle.defaultParagraphStyle().mutableCopy() as! NSMutableParagraphStyle
         paragraphStyle.lineBreakMode = NSLineBreakMode.ByTruncatingTail
-        let textFontAttributes = [NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(itemHeight)), NSForegroundColorAttributeName: textColor, NSParagraphStyleAttributeName: paragraphStyle]
+        let textFontAttributes = [NSFontAttributeName: UIFont.systemFontOfSize(CGFloat(itemHeight-2)), NSForegroundColorAttributeName: textColor, NSParagraphStyleAttributeName: paragraphStyle]
         for i in 0..<self.count() {
             let y = i * itemHeight
             let string : NSString? = self.storage.objectAtIndex(i).description
             if string != nil {
-                string?.drawAtPoint(CGPointMake(xPercentage * CGFloat(viewWidth), CGFloat(y)), withAttributes: textFontAttributes)
+                string?.drawAtPoint(CGPointMake(xPos, CGFloat(y)), withAttributes: textFontAttributes)
             }
         }
     }

import UIKit

public class JRMutableArray : NSObject {
    private let itemHeight = 4
    private let viewWidth = 600
    private var storage : NSMutableArray
    private var queue : dispatch_queue_t
    public var textColor : UIColor?

        return (min,max)
    }
    
    private func getPercentageInRange(d : Double, min : Double, max : Double) -> CGFloat {
        let delta = max - min
        if delta != 0 {
            let percentage = CGFloat(d / delta)
            return percentage
        }
        return 0
    }
    
    private func drawLine(color:UIColor,x0:CGFloat,y0:CGFloat,x1:CGFloat,y1:CGFloat) {
        let path = UIBezierPath()
        path.moveToPoint(CGPointMake(x0, y0))
        path.addLineToPoint(CGPointMake(x1, y1))
        path.lineWidth = 0.5
        color.setStroke()
        path.stroke()
    }
    
    private func drawLines(color:UIColor) {
        for i in 0..<self.count() {
            let y = CGFloat(i * itemHeight)
            drawLine(color, x0: 0, y0: y, x1: viewWidth, y1: y)
        }
    }
    
    private func drawBarsIfNumbers(xPos:CGFloat) {
        if arrayHasNumber() {
            var min : Double = Double.NaN
            var max : Double = Double.NaN
