 
 import AppKit
 
+/*
+ *  KPCTabsControl is the main class of the library, and is designed to suffice for implementing tabs in your app.
+ *  The only necessary thing for it to work is an implementation of uts dataSource.
+ *  No other classes (such as those of the buttons) should be necessary to access the full features of KPCTabsControl.
+ */
+
+/// TabsControl is the main class of the library, and is designed to suffice for implementing tabs in your app.
+/// The only necessary thing for it to work is an implementation of its dataSource.
 public class TabsControl: NSControl {
     private var ScrollViewObservationContext: UnsafeMutablePointer<Void> = nil // hm, wrong
     private var delegateInterceptor = MessageInterceptor()

        return filteredSubviews
    }
    
    public func highlight(flag: Bool) {
        self.isHighlighted = flag
        

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

    private var tabButtonCell: TabButtonCell {
        get { return self.cell as! TabButtonCell }
    }

    // MARK: - Data Source & Delegate
    
    /// The dataSource of the tabs control, providing all the necessary information for the class to build the tabs.
    @IBOutlet public weak var dataSource: TabsControlDataSource?
    /// The delegate of the tabs control, providing additional possibilities for customization and precise behavior.
    @IBOutlet public weak var delegate: TabsControlDelegate? {
        get { return self.delegateInterceptor.receiver as? TabsControlDelegate }
        set { self.delegateInterceptor.receiver = newValue as? NSObject }
    }
    
    // MARK: - Public Properties
    
    /// The tabs style.
    public var tabsStyle: TabsControlTabsStyle {
        get { return self.tabButtonCell.tabStyle }
        set {
