     private var sidebarMenuView: DORSidebarMenuView
     
     // MARK: - Public variables
-    public var animateDuration: CFTimeInterval = 0.2
+    
+    /**
+     The total duration of the animations, measured in seconds. If you specify a negative value or `0`, the changes are made without animating them.
+     */
+    public var animateDuration: NSTimeInterval = 0.2
+    
+    /**
+     The array of `UIViewController`s.
+     It can be dangerous to modify this in the runtime, but it is allowed. You should always use designated `init(width:controllers:menuElements:)`.
+     */
     public var controllers: [UIViewController?]
-    /// Menu elements is an array storing structs with `title`, `textColor` and `backgroundColor`
+    
+    /**
+     The array of menu elements is an array storing structs with `title`, `textColor` and `backgroundColor`.
+     It can be dangerous to modify this in the runtime, but it is allowed. You should always use designated `init(width:controllers:menuElements:)`.
+     */
     public var menuElements = [MenuElement]() {
         didSet {
             sidebarMenuView.tableView.reloadData()
         }
     }
+    /**
+     The sidebar menu's color.
+     */
     override public var backgroundColor: UIColor? {
         set {
             sidebarMenuView.view.backgroundColor = newValue

        self.menuElements = menuElements
    }

    public required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    public func show() {
        show(duration: animateDuration)
    }
    
    public func show(duration duration: CFTimeInterval) {
        makeKeyAndVisible()
        sidebarMenuView.show(duration: duration)
    }
    
    public func dismiss() {
        dismiss(duration: animateDuration)
    }
    
    public func dismiss(duration duration: CFTimeInterval) {
        if sidebarMenuView.visible {
            sidebarMenuView.dismiss(duration: duration) { _ in
                self.hidden = true


import UIKit

/**
 Struct storing `title`, `textColor` and `backgroundColor`.
 */
public struct MenuElement {

    public var title: String
    public var textColor: UIColor
    public var backgroundColor: UIColor
    
}

public enum SidebarMenuError: ErrorType {
    
    case NumberOfControllersAndMenuElementsAreNotEqual(controllersCount: Int, menuElementsCount: Int)
    
}

