         }
     }
 
-    // MARK: ScrollView Observation
+    // MARK: - ScrollView Observation
     
     private func startObservingScrollView() {
         self.scrollView?.addObserver(self, forKeyPath: "frame", options: .New, context: &ScrollViewObservationContext)

    private var addButton: NSButton? = nil
    private var scrollLeftButton: NSButton? = nil
    private var scrollRightButton: NSButton? = nil
    private weak var selectedButton: NSButton? = nil

    private var hideScrollButtons: Bool = true
    private var isHighlighted: Bool = false

    @IBOutlet public weak var dataSource: TabsControlDataSource? {
        didSet { self.reloadTabs() }
    }
    @IBOutlet public weak var delegate: TabsControlDelegate? {
        get { return self.delegateInterceptor.receiver as? TabsControlDelegate }
        set { self.delegateInterceptor.receiver = newValue as? NSObject }
    }
    
    public weak var selectedItem: AnyObject? = nil
    
    public var preferFullWidthTabs: Bool = false
    
    public var minTabWidth: CGFloat =  50.0
    public var maxTabWidth: CGFloat = 150.0
    
//    public override var highlighted: Bool {
//        get { return true }
//    }
    
    public var tabsStyle: TabsControlTabsStyle = .NumbersApp
    public var bordersMask: TabsControlBorderMask = .Top
    public var automaticSideBorderMasks: Bool = true
    
    public var controlBorderColor: NSColor? = NSColor.KPC_defaultControlBorderColor()
    public var controlBackgroundColor: NSColor? = NSColor.KPC_defaultControlBackgroundColor()
    public var controlHighlightedBackgroundColor: NSColor? = NSColor.KPC_defaultControlHighlightedBackgroundColor()
    
    public var tabBorderColor: NSColor? = NSColor.KPC_defaultTabBorderColor() {
        didSet {
//            self.tabButtons.valueForKey("cell") setValue
//            [[[self tabButtons] valueForKey:@"cell"] setValue:tabBorderColor forKey:@"tabBorderColor"];

        }
    }
    public var tabTitleColor: NSColor? = NSColor.KPC_defaultTabBorderColor()
    public var tabBackgroundColor: NSColor? = NSColor.KPC_defaultTabTitleColor()
    public var tabHighlightedBackgroundColor: NSColor? = NSColor.KPC_defaultTabBackgroundColor()
    public var tabSelectedBorderColor: NSColor? = NSColor.KPC_defaultTabHighlightedBackgroundColor()
    public var tabSelectedTitleColor: NSColor? = NSColor.KPC_defaultTabSelectedTitleColor()
    public var tabSelectedBackgroundColor: NSColor? = NSColor.KPC_defaultTabSelectedBackgroundColor()
    
    public required init?(coder: NSCoder) {
        super.init(coder: coder)

        self.stopObservingScrollView()
    }
    
    // MARK: - Public Overrides

    public override func menuForEvent(event: NSEvent) -> NSMenu? {
        return nil
    }
    
    // MARK: - Data Source
    
    public func reloadTabs() {
        guard let dataSource = self.dataSource else {
