     }
     
 }
+
+class ArrowView : UIView {
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+        self.backgroundColor = UIColor.clearColor()
+    }
+    
+    var rect: CGRect!
+    var arrorBackgroundColor: UIColor?
+    
+    var midX: CGFloat { return CGRectGetMidX(rect) }
+    var midY: CGFloat { return CGRectGetMidY(rect) }
+    var maxX: CGFloat { return CGRectGetMaxX(rect) }
+    var maxY: CGFloat { return CGRectGetMaxY(rect) }
+    
+    override func drawRect(rect: CGRect) {
+        self.rect = rect
+        
+        let ctx = UIGraphicsGetCurrentContext()
+        
+        CGContextBeginPath(ctx)
+        CGContextMoveToPoint(ctx, 0, 0)
+        CGContextAddQuadCurveToPoint(ctx, maxX * 0.12, 0, maxX * 0.2, maxY * 0.2)
+        CGContextAddLineToPoint(ctx, midX - maxX * 0.05, maxY * 0.9)
+        CGContextAddQuadCurveToPoint(ctx, midX, maxY, midX + maxX * 0.05, maxY * 0.9)
+        CGContextAddLineToPoint(ctx, maxX * 0.8, maxY * 0.2)
+        CGContextAddQuadCurveToPoint(ctx, maxX * 0.88, 0, maxX, 0)
+        CGContextClosePath(ctx)
+        
+        CGContextSetFillColorWithColor(ctx, arrorBackgroundColor?.CGColor)
+        CGContextFillPath(ctx);
+    }
+    
+}

        }
        
        // set custom attrs
        self.tabSectionScrollView.backgroundColor = self.tabSectionBackgroundColor
        self.contentSectionScrollView.backgroundColor = self.contentSectionBackgroundColor
        
        // first time setup pages
        self.setupPages()
        
        // async necessarily
        dispatch_async(dispatch_get_main_queue()) {

            
            // reset the fixed size of content section
            contentSectionScrollView.frame = CGRect(x: 0, y: tabSectionHeight, width: self.frame.size.width, height: contentSectionHeight)
            
            // reset the origin of arrow view
            arrowView.frame.origin = CGPoint(x: (self.frame.width - arrowView.frame.width) / 2, y: tabSectionHeight)
        }
    }
    
